从另一个java程序运行java程序



我正在尝试从另一个Java应用程序运行Java程序。这是我的代码:

public class Main {
  public static int Exec() throws IOException {
    Process p = Runtime.getRuntime().exec("javac -d C:/Users/Dinara/Desktop/D/bin "
            + "C:/Users/Dinara/Desktop/D/src/test.java");
    Process p1 = Runtime.getRuntime().exec("java -classpath C:/Users/Dinara/Desktop/D/bin test");
    return 0;
  }
  public static void main(String[] args) throws IOException {
    Exec();
  }
}

javac工作正常,并在bin目录中创建test.class文件。但是,java -classpath C:/Users/Dinara/Desktop/D/bin test不运行test.class文件。test.java:的内容

import java.io.*;
class test {
  public static void main(String args[]) {
    try {  
      FileWriter fstream = new FileWriter("out.txt");
      BufferedWriter out = new BufferedWriter(fstream);
      out.write("Hello Java");
      out.close();
    } catch (Exception e) {
    System.err.println("Error: " + e.getMessage());
    }
  }
}

我想是识别Java命令出了问题。你能给我一个解决这个问题的示例代码或分享想法吗?我使用Netbeans来运行Main类,应用程序文件夹的位置是C:\Users\Dinara\Main-

使用

System.getProperty("java.home") + "/bin/java -classpath C:/Users/Dinara/Desktop/D/bin test" 

而不是

"java -classpath C:/Users/Dinara/Desktop/D/bin test"

您需要提供javac的完整路径,exec不会使用ath为您查找

最新更新