我正在尝试从另一个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-
使用
System.getProperty("java.home") + "/bin/java -classpath C:/Users/Dinara/Desktop/D/bin test"
而不是
"java -classpath C:/Users/Dinara/Desktop/D/bin test"
您需要提供javac的完整路径,exec不会使用ath为您查找