1

javaプログラムの一部としてbashスクリプトをコンパイルする方法について、誰か助けてくれませんか。私は、bash スクリプト コマンドを呼び出すために使用する単純な Java プログラムを作成しています。


私のJavaコードは次のようになります:

    try{
            Process p = Runtime.getRuntime().exec("myscript.sh"); 
        BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 

        String line = null;  

        while ((line = in.readLine()) != null){  
                    System.out.println(line); 
        }  
    }
    catch(IOException e){
        System.out.println(e.getMessage());
    }

「mysrcipt.sh」ファイルは、次の行を含む単純なスクリプトです。


!/ビン/バッシュ

echo "入力を入力してから [ENTER]:"

read -e 選択

エコー $choice


私の問題は、複数の行を入力してEnterキーを数回押しても、プログラムがスクリプトの読み取りコマンドで入力を待機することです。

4

3 に答える 3

3

次を使用できます。

Process p = Runtime.getRuntime().exec("bash_script.sh"); 
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));  
String line = null;  
while ((line = in.readLine()) != null) {  
   // use bash script line output
}  
于 2012-09-18T21:47:26.617 に答える
1

何を達成しようとしているのかを示すコードを見ると役に立ちます。

Javaでbashスクリプトを実行するには、次のようなものを使用できます...

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("YOUR COMMAND STRING");

List<String> lines = IOUtils.readLines(process.getInputStream());
于 2012-09-18T21:51:19.830 に答える
1

Runtime.exec() は、bash スクリプトを実行するために必要なものですが、いくつかの落とし穴があることに注意してください。これは、外部スクリプトの呼び出しを開始するときに役立つ記事であることがわかりました。

これは Windows プラットフォーム向けに書かれていますが、議論されている内容の多くは *nix にも関連しています。

この質問も参照してください。

于 2012-09-18T22:08:12.633 に答える