【发布时间】:2013-12-11 14:47:25
【问题描述】:
我让终端与 SenseRelate::AllWords 一起工作,使用以下命令:
wsd.pl --context test.txt --format raw --
但是,现在我尝试从我的 Java 代码运行 wsd.pl,它看起来像这样:
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 路径是项目的源文件夹(顶层,在 src、.git 等旁边)
我尝试了一些不同的方法:将参数添加到列表并基于该列表创建一个新进程,格式化参数的不同方法,但不,它不会起作用。有人可以帮忙吗?我想这是我不熟悉的一些语法。
谢谢!
【问题讨论】:
-
我的第一个想法是确保你的工作目录是你真正认为的那样。我的第二个想法是检查您的 perl 脚本,因为它似乎为您提供了有效的输出,这可能不是从 java 调用的问题。
标签: java perl word-sense-disambiguation