[英]how to compile & run java program in another java program-netbeans
我尝试使用netbeans运行问题中接受的答案。 类文件已创建,但未执行。 这是我的代码
import java.io.*;
public class Laj {
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());
}
public static void main(String[] args) {
try {
runProcess("javac /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main.java");
Thread.sleep(1000);
runProcess("java /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Main.java只是一个打印语句,
public class Main {
public static void main(String[] args) {
System.out.println("Done");
}
}
而且我得到了错误
javac /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main.java exitValue() 0
java /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main stderr: Error: Could not find or load main class
.home.shibin.NetBeansProjects.JavaApplication3.src.javaapplication3.Main
java /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main exitValue() 1
运行Java程序的命令是java packageName.programName
或java packageName/programName
。这里的问题是您正在使用java pathOfProgram/programname
运行代码。 要解决此问题,您必须使用-cp
参数后跟programPath来提供类路径,如下所示:
java -cp pathOfProgram packageName.programName
尝试这个:
runProcess("java -cp /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3 Main");
您的Java命令应具有classpath参数。 最好使用cmd数组。 Java进程api不是xommand行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.