java -jar twitie_tag.jar <path to model file> <path to input file> <output file>
我已经在 java 进程生成器中给出了上述命令,如下所示
ProcessBuilder pb = new ProcessBuilder("java","-jar","twitie_tag.jar","models\\gate-EN-twitter.model", "newfile.txt");
pb.redirectErrorStream(true);
final Process process = pb.start();
InputStream stderr = process.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
process.waitFor();
System.out.println("Waiting ...");
System.out.println("Returned Value :" + process.exitValue());
但它在线程“main”中抛出异常错误
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
如果我提供redirectoutputstream,它不会打印任何内容,它只是打印等待并且退出值为1
我有一个 jar 文件 twittejar,我在命令行中执行为 java、-jar、twitie_tag.jar、gate-EN-twitter.model、newfile.txt、> outfile.txt(输出将保存在 outfile.txt 中)。如果我给出 java、-jar、twitie_tag.jar、gate-EN-twitter.model、newfile.txt(输出将显示在该命令窗口本身中),但我需要使用 java 程序执行这些命令。
最佳答案
那么问题是您没有运行 Java 命令的进程的输出或错误流。 您可能需要使用redirectOutput 和redirectError 方法重定向进程的输出,以便您可以查看运行jar 文件的shell 是否存在问题。
关于java - 如何在java中使用processbuilder将参数传递给jar文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29431125/