我有一个从pdf中提取文本的java swing应用程序。当我使用命令提示符(java -jar xyz.jar
)运行或双击并运行jar时,它工作得很好,但当我使用java代码运行时,它就卡住了
Process asm = Runtime.getRuntime().exec("java -jar xyz.jar");
asm.waitFor();
或者使用进程构建器。是因为我的应用程序中的异常吗?我没有把握。
发布于 2012-06-18 09:37:36
您可能没有在正确的目录中。
使用ProcessBuilder的directory()方法,以便外部进程在正确的位置运行,这样就可以找到jar。
ProcessBuilder processBuilder = new ProcessBuilder("java -jar xyz.jar");
processBuilder.redirectErrorStream(true);
processBuilder.directory( complete this );
Process process = processBuilder.start();
String output = readOutput(process);
try {
if (process.waitFor() != 0) {
throw new IOException("command exited in error: " + process.exitValue() + "\n" + output);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
如果这不能解决您的问题,请打印输出流(包括错误流)以查看发生了什么。
https://stackoverflow.com/questions/11080224
复制