的Java:调用Perl脚本 - 使用过程():wsd.pl
问题描述:
我得到SenseRelate :: AllWords工作,用这个命令的终端:的Java:调用Perl脚本 - 使用过程():wsd.pl
wsd.pl --context test.txt --format raw --
不过,现在我试图运行WSD。 PL从我的Java代码,它看起来像这样:
public static void main(String args[]) throws IOException {
String line;
ProcessBuilder pb = new ProcessBuilder("wsd.pl", "--context test.txt", "--format raw");
pb.redirectErrorStream(true);
Process process = pb.start();
InputStream stdout = process.getInputStream();
BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
while ((line = reader.readLine()) != null) {
System.out.println ("Stdout: " + line);
}
}
它给我的错误:
Stdout: Unknown option: context test.txt
Stdout: Unknown option: format raw
test.txt的路径是到工程中的源文件夹t(顶级,在src,.git旁边)
我试过了一些不同的方法:向列表中添加参数并基于该列表创建一个新的进程,不同的格式化参数的方式但是没有,它不会工作。有人可以帮忙吗?我想这是我不熟悉的一些语法。
谢谢!
答
ProcessBuilder pb = new ProcessBuilder("wsd.pl", "--context", "test.txt", "--format", "raw");
另外请确保您的工作目录是正确的。
我首先想到的是要确保你的工作目录是什么,你真的认为它是。我的第二个想法是检查你的perl脚本,因为它看起来像是给你有效的输出,这可能不是从java调用的问题。 – lscoughlin