我有一个 java swing 应用程序来从 pdf 中提取文本。当我使用命令提示符(java -jar xyz.jar
)运行或双击并运行 jar 时它工作正常,但是当我使用 java 代码运行时它卡住了
Process asm = Runtime.getRuntime().exec("java -jar xyz.jar");
asm.waitFor();
或使用流程构建器。是因为我的应用程序中的例外吗?我不确定。
您可能不在正确的目录中。
使用 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();
}
如果这不能解决您的问题,请打印输出流(包括错误之一)以查看会发生什么。