0

我正在尝试使用命令行从 python 调用 java 程序。代码如下:

subprocess.check_output(["java", "pitt.search.semanticvectors.CompareTerms", "-queryvectorfile","termvectors.bin","term1","term2"])

我收到以下错误:

Error: Could not find or load main class pitt.search.semanticvectors.CompareTerms

当我从 PyDev(Eclipse 3.7.2 中的 2.5 版)运行程序时会发生这种情况。但是,如果我从终端运行相同的代码,它可以工作并且我得到我想要的结果。

我几乎可以肯定这个问题与 PyDev 的某些配置以及它如何处理 java CLASSPATH 相关,即:

/Users/feralvam/Programas/semanticvectors-3.4/semanticvectors-3.4.jar:/Users/feralvam/Programas/lucene-3.5.0/lucene-core-3.5.0.jar:/Users/feralvam/Programas/lucene-3.5.0/contrib/demo/lucene-demo-3.5.0.jar:

“pitt.search.semanticvectors.CompareTerms”类在“semanticvectors-3.4.jar”中。

您能给我的任何帮助将不胜感激。

谢谢!

4

1 回答 1

0

@eis 提出的解决方案奏效了。现在,命令是:

subprocess.check_output(["java", "-classpath", "/Users/feralvam/Programas/semanticvectors-3.4/semanticvectors-3.4.jar:/Users/feralvam/Programas/lucene-3.5.0/lucene-core-3.5.0.jar:/Users/feralvam/Programas/lucene-3.5.0/contrib/demo/lucene-demo-3.5.0.jar:", "pitt.search.semanticvectors.CompareTerms", "-queryvectorfile","/Users/feralvam/termvectors.bin","term1","term2"])
于 2012-06-26T10:16:46.537 回答