在線編程-1

階段一:使用Java調(diào)用我們?cè)贚inux上面的shell腳本實(shí)現(xiàn)對(duì)C語言的編譯鏈接運(yùn)行

本章節(jié)的內(nèi)容完全在Linux環(huán)境中實(shí)現(xiàn)

1.編寫C語言測(cè)試代碼 demo.c

#include<stdio.h>
int main(){
    printf("hello linux\n");
    return 0;
}

2.編寫shell腳本對(duì)C語言代碼進(jìn)行 編譯 運(yùn)行 run.shell

#!bin/bash
gcc demo.c -o demo.out # 編譯
./demo.out  # 運(yùn)行代碼
rm demo.out  #運(yùn)行完之后直接刪除.out文件

3.編寫Java代碼進(jìn)行測(cè)試

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestShell {
    public static void main(String[] args) {
        Process process;
        try {
            process = Runtime.getRuntime().exec("bash ./run.shell");//運(yùn)行我的shell腳本
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            int exitValue = process.waitFor();
            while((line = reader.readLine())!= null){
                System.out.println(line);
            }
            if (exitValue == 0){
                System.out.println( "successfully executed the linux command");
            }
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

編譯Java代碼

javac TestShell.java

運(yùn)行Java代碼

java TestShell
1605106997355.png

注意:

錯(cuò)誤1:在運(yùn)行代碼的時(shí)候直接 Java 文件名 不要點(diǎn)class
1605105976811.png
錯(cuò)誤2:文件名要和類名同名,不然會(huì)有如下錯(cuò)誤
1605105997013.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容