.jar没有执行并显示System.out.print();产量

时间:2013-04-30 08:36:59

标签: java runtime.exec

我的问题是何时使用

调用jar文件
  

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

编码就是那样

  

public static void main(String [] args){

  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 个答案:

答案 0 :(得分:0)

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

p.getOutputStream(); // System.out
p.getErrorStream();  // System.err

答案 1 :(得分:0)

您期望System.out去哪儿?

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

请参阅this answer for more info

答案 2 :(得分: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文件,您需要更改的是上面代码中的路径请回复它将为您工作我将感谢您的回复

答案 3 :(得分: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);
}

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