[英]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命令之前設置/更新環境變量和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
命令引用的目錄的內容。
在使用javac
或java
之前, 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.