执行java文件并从cmd获取输出

执行java文件并从cmd获取输出,java,Java,我想编译第二个文件并获得输出,但它引发了一个异常 public static void main(String[] args) throws IOException, InterruptedException { String path="C:\\Users\\Amr\\Documents\\NetBeansProjects\\Second.java"; Process pro1 = Runtime.getRuntime().exec("javac " + path

我想编译第二个文件并获得输出,但它引发了一个异常

  public static void main(String[] args) throws IOException, InterruptedException {

    String path="C:\\Users\\Amr\\Documents\\NetBeansProjects\\Second.java";   

    Process pro1 = Runtime.getRuntime().exec("javac " + path);

    ProcessBuilder ps = new ProcessBuilder("java ", path);

    ps.redirectErrorStream(true);

    Process pr = ps.start();

    BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String line;
    while ((line = in.readLine()) != null) {
        System.out.println(line);
    }
    pr.waitFor();
    System.out.println("ok!");

    in.close();

    pro1.waitFor();

}
获取该类的输出

public class Second {
public static void main(String[] args) {
    System.out.println("Hello world from Second.java");
}}
请为修复错误提供帮助

这就是错误所在

Error: Could not find or load main class C:\Users\Amr\Documents\NetBeansProjects\Second.java
您正在执行
javasecond.java
它应该是
javasecond

替换
path.replace(“.java”和“”)
或创建一个不带“.java”的变量


你犯了什么错误?为什么有两个主要方法?第一个主要方法位于哪个类?仍然想知道为什么您有两个主要方法。看起来您正试图将“Second.java”作为类文件加载。尝试用Second替换Second.java。class@jiaweizhang我想从中获得第二个类(外部类与另一个类没有关系)的输出cmd@Spencer4134输出相同的异常到你的类有包吗?我已经编辑了我的答案,你能检查一下吗?
 ProcessBuilder ps = new ProcessBuilder("java ", path);
nsaravanas@ubuntu:~$ pwd
/home/nsaravanas
nsaravanas@ubuntu:~$ javac com/test/Second.java
nsaravanas@ubuntu:~$ java com.test.Second
Hello world from Second.java
nsaravanas@ubuntu:~$