簡體   English   中英

Java中的運行時類

[英]Runtime class in java

如何在Runtime.getRuntime()。exec()的幫助下執行Java程序。 例如,我們的Java文件路徑為c:/java/abc.java。 請幫助我的代碼。

假設abc.java包含您要執行的主要方法:

Runtime.getRuntime().exec("javac c:\java\abc.java -d c:\java\")
Runtime.getRuntime().exec("java c:\java\abc")

不要忘記:

  • 您可能需要閱讀Java程序的stdout / stderr
  • 您可能必須在執行Java命令之前設置/更新環境變量和PATH

    CreateProcess:c:\\ j2sdk1.4.0 \\ bin \\ helloworld錯誤= 2

表示Win32的CreateProcess在找不到您指定的命令時返回2作為錯誤代碼; 更具體地說,當命令在其查找路徑上未引用可執行文件時。

查看此SO問題以獲取更完整的“ Runtime.getRuntime().exec() ”代碼,以及本代碼段

此代碼創建一個外殼程序(如Runtime.getRuntime().exec("cmd /K") ),您可以在其中用sdtin編寫要執行的任何命令。

這種方法的興趣在於重用Shell進程以從上一個命令中受益:先執行cd ,然后執行dir ,后一個命令將顯示cd命令引用的目錄的內容。

在使用javacjava之前, PATH設置也是如此。

您應該使用ProcessBuilder而不是運行時。 基本用法如下:

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

您可以在上面的鏈接下找到更多代碼。 也看到這個問題

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();

您的意思是您希望一個Java程序運行另一個Java程序。 在這種情況下, 此SO線程可能會有所幫助。

請查看曾經被稱為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) {
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM