0

我正在尝试从另一个 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

4

2 回答 2

3

采用

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

代替

"java -classpath C:/Users/Dinara/Desktop/D/bin test"
于 2012-08-02T10:42:25.350 回答
2

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

于 2012-08-02T10:39:04.913 回答