0

我有一个 java swing 应用程序来从 pdf 中提取文本。当我使用命令提示符(java -jar xyz.jar)运行或双击并运行 jar 时它工作正常,但是当我使用 java 代码运行时它卡住了

Process asm = Runtime.getRuntime().exec("java -jar xyz.jar");
asm.waitFor();

或使用流程构建器。是因为我的应用程序中的例外吗?我不确定。

4

1 回答 1

2

您可能不在正确的目录中。

使用 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();
}

如果这不能解决您的问题,请打印输出流(包括错误之一)以查看会发生什么。

于 2012-06-18T09:37:35.830 回答