繁体   English   中英

在另一个程序中运行Java程序会出现错误

[英]Running Java Program in another Program gives error

我想在程序中执行另一个Java程序。 我从这里参考 为了测试,我粘贴了与接受的答案所示相同的代码。我通过了一个简单的HelloWorld程序。 程序可以完美编译,但会给Main class未找到错误。

这是我的代码:Server.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上编译并运行同一程序可提供完美的输出。

要启动main从HelloWorld类? 我认为,在这种情况下,您应该运行以下程序:

java -cp 'D:\' HelloWorld

因此,您需要指定ClassPath-'D:\\',并从classpath-HelloWorld中输入条目名称。

为什么要尝试用困难的方式做事? 使用内联编译器API,然后在将类本身加载到根类加载器后,只需对新类执行main()方法即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM