2

我的问题是何时使用调用 jar 文件

Runtime.getRuntime().exec() 方法,我的 .jar 没有执行并显示其输出

编码是这样的

公共静态无效主要(字符串[]参数){

  String execJar = "java -jar C:\test.jar";       

  try {

      Process p = Runtime.getRuntime().exec(execJar);

  } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       
}

当我在命令提示符下使用这个“java -jar C:\test.jar”时,我的 .jar 没有执行,因此没有显示 System.out 输出。有谁知道我怎样才能做到这一点?

谢谢。

4

4 回答 4

0

当您从 Java 中执行一个进程时,它将在该特定进程中拥有自己的标准输出和标准错误流。Process要访问这些,您必须从您创建的对象中获取相应的流。

p.getOutputStream(); // System.out
p.getErrorStream();  // System.err
于 2013-04-30T08:39:48.110 回答
0

你希望System.out去哪里?

当进程生成时,输入/输出和错误流在生成进程和生成进程之间打开。您应该使用输入和错误(这些表示进程输出,尽管名称令人困惑),否则您生成的进程将阻塞,等待流的内容被使用。

有关更多信息,请参阅此答案

于 2013-04-30T08:40:53.667 回答
0
  ProcessBuilder pb = new ProcessBuilder("java", "-Xmx1024m", "-Xms1024m",
         "-DTOOLS_DIR=F://Net Beans Work Space//calc//dist", "-Daoi=whole", 
         "-jar", "F://Net Beans Work Space//calc//dist//calc.jar");

  pb.start();

使用这个代码它肯定会运行你的 jar 文件你需要改变的是上面代码中的路径请回复它会为你工作我会感谢你的回复

于 2013-04-30T08:54:00.767 回答
0
 ProcessBuilder pb = new ProcessBuilder("java", "-Xmx1024m", "-Xms1024m",
         "-DTOOLS_DIR=C://", "-Daoi=whole", 
         "-jar", "C://calc.jar");
try {
    pb.start();
} catch (IOException ex) {
    System.out.print("EEE"+ex);
}

这很容易遵循,因为它具有简单的路径,因此您可以尝试并让它轻松运行

于 2013-04-30T09:01:09.070 回答