我的问题是何时使用
调用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输出。 有谁知道我怎么做这个工作?
感谢。
答案 0 :(得分:0)
当您在Java中执行进程时,它将在该特定进程中拥有自己的标准输出和标准错误流。要访问它们,您必须从您创建的Process
对象中获取相应的流。
p.getOutputStream(); // System.out
p.getErrorStream(); // System.err
答案 1 :(得分:0)
您期望System.out
去哪儿?
生成进程时,将在产生和生成的进程之间打开输入/输出和错误流。您应消耗输入和错误(这些代表进程输出,尽管名称令人困惑),否则您生成的进程将阻塞,等待流的内容被消耗
答案 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);
}
这很容易理解,因为它有简单的路径,因此您可以尝试并让它轻松运行