我正在尝试从另一个Java程序运行Java程序,其中两个程序实际上都不在同一个程序包中,甚至不在同一个项目中,并且从我在SO上找到答案开始,这里是代码:< / p>
try {
Process processCompile = Runtime.getRuntime().exec("javac Main.java");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Process processRun = null;
try {
processRun = Runtime.getRuntime().exec("java Main");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
printLines(" stdout:", processRun.getInputStream());
printLines(" stderr:", processRun.getErrorStream());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
执行以下代码会出现以下错误:
Error: Could not find or load main class Main
现在我知道我必须以某种方式使Main.java普遍可用于从另一个程序运行它。我不知道该怎么做。
我真的很感激这方面的一些帮助。
答案 0 :(得分:0)
我正在尝试从另一个Java程序运行Java程序 程序实际上并不在同一个包中 项目,并开始我已经找到了答案,这里是 代码:
类在运行java命令时应该指定的包中定义:
try {
processRun = Runtime.getRuntime().exec("java Main");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
此外,如果类是在包中定义的,那么最好在与包对称的目录结构中定义它。我说过,因为在编译课程时,你没有指定Main.java
文件包的路径:
try {
Process processCompile = Runtime.getRuntime().exec("javac Main.java");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}