[英]executing a java program in another java program using Runtime.exec() function
[英]Executing one Java program from another using Runtime.exec(…)
我要執行的測試器程序接受一個參數-文件名-並用“這是修改的版本”行制作文件的副本。 在新文件的頂部。 當我單獨測試該程序時,它會工作並生成一個新文件。
然后,我編寫了程序來調用文件:
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime.exec("java Tester.java inputfilename.txt");
p.waitFor();
System.out.println("Done");
} catch(Exception e) {
System.out.println("Error");
System.exit(0);
}
}
上面的程序打印出“ Done”,但它從未對傳入的文件進行修改。然后,我將另一個println()放在另一個程序中。 當我單獨運行該程序時,它會打印出這些語句,但是當我嘗試從上面的程序中調用它時,它並沒有。 我該如何解決?
您必須先編譯.java
文件,然后再啟動它:
編譯(包含main方法的類):
javac Tester.java
發射:
java Tester inputfilename.txt
"java Tester.java inputfilename.txt"
應該:
"java Tester inputfilename.txt"
但是幫自己一個忙,閱讀(並實現) When Runtime.exec()不會的 所有建議。
那可能會解決其他問題。 如果不是,它應該提供有關失敗原因的更多信息。
然后忽略它引用exec
並使用ProcessBuilder
構建Process
。 還要將String arg
分解為String[] args
以說明本身包含空格的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.