我正在尝试从另一个Java应用程序运行Java程序。这是我的代码:
public class Main {
public static int Exec() throws IOException {
Process p = Runtime.getRuntime().exec("javac -d C:/Users/Dinara/Desktop/D/bin "
+ "C:/Users/Dinara/Desktop/D/src/test.java");
Process p1 = Runtime.getRuntime().exec("java -classpath C:/Users/Dinara/Desktop/D/bin test");
return 0;
}
public static void main(String[] args) throws IOException {
Exec();
}
}
javac
正常工作并在bin目录中创建test.class
文件。但是java -classpath C:/Users/Dinara/Desktop/D/bin test
不会运行test.class
文件。
test.java
的内容:
import java.io.*;
class test {
public static void main(String args[]) {
try {
FileWriter fstream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write("Hello Java");
out.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
我认为识别Java命令有问题。你能给我一个解决这个问题或分享想法的示例代码吗?我正在使用Netbeans运行Main类,应用程序文件夹的位置是C:\ Users \ Dinara \ Main
答案 0 :(得分:3)
使用
System.getProperty("java.home") + "/bin/java -classpath C:/Users/Dinara/Desktop/D/bin test"
而不是
"java -classpath C:/Users/Dinara/Desktop/D/bin test"
答案 1 :(得分:2)
你需要提供javac的完整路径,exec不会使用ath为你找到它