使用java代码运行jar时出错

时间:2012-06-18 09:36:10

标签: java swing jar

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

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

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

1 个答案:

答案 0 :(得分: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();
}

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