3

Runtime.getRuntime().exec() を使用して Java プログラムを実行する方法。たとえば、java ファイルのパスは c:/java/abc.java とします。コードを手伝ってください。

4

6 に答える 6

2

その事を忘れるな:

  • Javaプログラムのstdout/stderrを読む必要があるかもしれません
  • Javaコマンドを実行する前に、環境変数とPATHを設定/更新する必要がある場合があります

    CreateProcess:c:\ j2sdk1.4.0 \ bin \ helloworld error = 2

Win32CreateProcessは、指定したコマンドが見つからない場合、エラーコードとして2を返すことを意味します。より具体的には、コマンドがルックアップパス上の実行可能ファイルを参照しない場合。

より完全な" "コード、およびこのスニペットについては、このSOの質問を参照してください。Runtime.getRuntime().exec()

Runtime.getRuntime().exec("cmd /K")このコードは、(のように)シェルを作成し、sdtin実行したいコマンドを記述します。

このアプローチの利点は、シェルプロセスを再利用して、前のコマンドの恩恵を受けることです。''を実行してから' cd'を実行するdirと、後者のコマンドは、cdコマンドによって参照されるディレクトリの内容を表示します。

またはPATHを使用する直前の設定についても同じことが言えます。javacjava

于 2009-02-03T08:44:41.300 に答える
2

abc.java に実行するメイン メソッドが含まれているとします。

Runtime.getRuntime().exec("javac c:\java\abc.java -d c:\java\")
Runtime.getRuntime().exec("java c:\java\abc")
于 2009-02-03T06:17:14.063 に答える
2

Runtime の代わりにProcessBuilderを使用する必要があります。基本的な使用方法は次のとおりです。

Process process = new ProcessBuilder(command).start();

上記のリンクの下にさらにコードがあります。この質問も参照してください。

于 2009-02-03T08:58:36.047 に答える
1
String path1 = "f://" + File.separator+username+File.separator+progName; 
Runtime runtime = Runtime.getRuntime();
String command = "javac -classpath " + path + " " + path1;
System.out.println(command);
Process process = runtime.exec(command);
InputStream error = process.getErrorStream();
于 2012-06-03T05:23:02.493 に答える
1

Java プログラムで別の Java プログラムを実行したいということです。その場合、この SO スレッドが役立つ場合があります。

于 2009-02-03T06:17:01.037 に答える
0

javaalmanacと呼ばれていた優れたリソースをご覧ください。

http://www.exampledepot.com/egs/java.lang/Exec.html

try {
    // Execute a command with an argument that contains a space
    String[] commands = new String[]{"grep", "hello world", "/tmp/f.txt"};
    commands = new String[]{"grep", "hello world", "c:\\Documents and Settings\\f.txt"};
    Process child = Runtime.getRuntime().exec(commands);
 } catch (IOException e) {
 }
于 2009-02-03T08:55:34.943 に答える