0

Java プログラム内から実行可能ファイルと perl スクリプトを実行しようとしています。これに似た多くのトピックを見つけましたが、それらのほとんどはウィンドウに言及しています。Java がプラットフォームに依存しないことは知っていますが、とにかく動作するはずですが、動作しません。私がすでに試した解決策は、Java ランタイムに基づくものであり、それは exec メソッドです。Windowsでは問題なく動作しますが、プログラムをLinuxに移植しているため、適応させる必要があります。私が言ったように、私がコンパイルして c++ で書かれた実行可能ファイルを実行する必要があります。そして、それがLinuxでも同様のはずです(?!?!)。一方、パールスクリプトはまったく起動しません。コマンド「perl script.pl」を使用します

これらのファイルを実行する別の方法を知っている人はいますか? それとも、実装のどこが間違っているのでしょうか?

見たい場合のコードは次のとおりです。これはperlスクリプトのコードです

public static void main(String[] args){
    System.out.println("Starting");
    try{
        String[] cmd = {"perl", "cloc-1.53.pl"};
        Process pr = Runtime.getRuntime().exec(cmd);
        BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

        String line=null;

        while((line=input.readLine()) != null) {
            System.out.println(line);
        }

        int exitVal = pr.waitFor();
        System.out.println("Exit code: " + exitVal);
    } catch (Throwable t){
        t.printStackTrace();
    }
}

コンパイルされたファイルの場合、これを変更します。

String[] cmd = {"perl", "cloc-1.53.pl"};

と:

String cmd = "./UCC";
4

1 に答える 1

1

Windows と Linux でのプロセスの開始に違いはないはずです。

良い記事http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html 古い方法ですが、良い洞察が得られます。

新しい方法に変換する記事:

Runtime.exec() から ProcessBuilder へ

于 2011-08-31T16:55:32.060 に答える