java - 使用 Runtime.exec(...) 从另一个 Java 程序执行

标签 java process runtime.exec

我想要执行的测试程序接受一个参数——一个文件名——并用“This is a modified version”这一行复制文件。在新文件的顶部。当我单独测试这个程序时,它可以工作并生成一个新文件。

然后我写了调用文件的程序:

public static void main(String[] args) {
    try {
        Process p = Runtime.getRuntime.exec("java Tester.java inputfilename.txt");
        p.waitFor();
        System.out.println("Done");
    } catch(Exception e) {
        System.out.println("Error");
        System.exit(0);
    }
} 

上面的程序打印出“完成”,但它从未对我传入的文件进行修改。然后我将一些 println() 放入另一个程序中。当我单独运行那个程序时,它会打印出那些语句,但是当我试图从上面的程序中调用它时,它却没有。我该如何解决这个问题?

最佳答案

您必须先编译.java 文件,然后再启动它:

编译(包含主要方法的类):

javac Tester.java

启动:

java Tester inputfilename.txt

关于java - 使用 Runtime.exec(...) 从另一个 Java 程序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595528/

相关文章:

java - 如何将 enum 与 switch 语句一起使用?

java - 为什么此 URL 从 Tomcat 返回错误 400?

c# - .NET System.Process : when you redirect StandardError, 控制台窗口没有收到任何输出

java - 从 Java 代码调用 C 可执行文件后没有得到任何输出

java - BufferedReader 连接未关闭

java - 洗牌 ImageView 位置

Java runtime.exec 无法正确执行

java - 使用 Jython 打开特定浏览器

c++ - 使程序在无限循环中等待时使用更少的 CPU

android - 应用程序的生命周期 : How to do some clean jobs when the process is terminated?