【发布时间】:2016-12-10 07:42:49
【问题描述】:
我想从我的 java 程序中运行 jar 文件。
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "parallel/Parallel.jar", "aug/*.xml");
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s = "";
while((s = in.readLine()) != null){
System.out.println(s);
}
int status = p.waitFor();
System.out.println("Exited with status: " + status);
这是我得到的错误日志:
[33mProblem found trying to create the log file[0m
[31mCannot locate configuration source aug/*.xml[0m
[31mNo files to work with[0m
Exited with status: 1
问题 1:我尝试使用完整的文件名而不是 * 并且它有效。但是,我想在目录下的所有文件上运行 jar。
问题 2:运行时,jar 文件会要求输入“继续”或“取消”。但是 jar 程序只是在 Eclipse 控制台中退出,而我没有机会输入任何内容。所以,我想知道是否有办法在终端内启动 jar 文件?
【问题讨论】:
-
请提供有关您的 JAR
parallel/Parallel.jar的更多详细信息。如果这个 JAR 需要输入,你应该使用 docs.oracle.com/javase/7/docs/api/java/lang/… -
你确定它只是在 Eclipse 中退出(当你提供一个有效的文件名时)而不是等待永远不会来自管道的输入?