【发布时间】:2015-12-02 14:34:21
【问题描述】:
我想在我的程序中执行另一个 Java 程序。我参考了here。为了测试,我粘贴了与接受的答案显示相同的代码。我通过了一个简单的 HelloWorld 程序。程序编译完美,但出现 Main class not found 错误。
这是我的代码: 服务器.java
public static void main(String args[]) {
try {
runProcess("javac D:\\HelloWorld.java");
runProcess("java D:\\HelloWorld");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void printLines(String name, InputStream ins) throws Exception {
String line = null;
BufferedReader in = new BufferedReader(
new InputStreamReader(ins));
while ((line = in.readLine()) != null) {
System.out.println(name + " " + line);
}
}
private static void runProcess(String command) throws Exception {
Process pro = Runtime.getRuntime().exec(command);
printLines(command + " stdout:", pro.getInputStream());
printLines(command + " stderr:", pro.getErrorStream());
pro.waitFor();
System.out.println(command + " exitValue() " + pro.exitValue());
}
HelloWorld.java:
`public static void main(String args[]){
System.out.println("Hello World!");
}`
输出:
exitValue() 0 for javac
stderr: Error: Could not find or load main class D:\HelloWorld
exitValue() 1 for java
在 CMD 或 IDE 上编译和运行相同的程序可以得到完美的输出。
【问题讨论】:
-
你能展示你的代码吗?
-
HelloWorld在包中吗?另外,您是否尝试过自己运行“java D:\\HelloWorld”命令? -
您在所谓的路径中有
.class文件吗?d:\HelloWorld -
您的课程(使用
java ___命令运行)不会被称为D:\HelloWorld。它将被称为HelloWorld或packagename/HelloWorld。 -
不仅如此,D:\ 不会出现在类路径中,除非它被明确添加,因此如果存在类,它将永远找不到类。
标签: java