繁体   English   中英

在python脚本中调用Java程序:类路径错误

[英]calling a java program in a python script : Classpath Error

我正在运行一个python脚本,它实质上是关于信息检索的。 由于一次执行脚本需要很长时间,因此我想运行并行脚本。 我在脚本中使用以下代码调用Java程序:

x='java -cp "lib/*:esalib.jar" clldsystem.esa.ESAAnalyzer %s %s' % (word1, word2)
args=shlex.split(x)
print args
p=subprocess.Popen(args)
p.wait()

工作正常。 为了不混淆输入文件和临时结果文件,我在包含脚本的文件夹内创建了一个新文件夹。 我现在正尝试从新文件夹中运行脚本的副本。 我将代码更新为:

x='java -cp "../lib/*:esalib.jar" ../clldsystem.esa.ESAAnalyzer %s %s' % (word1, word2)
args=shlex.split(x)
print args
p=subprocess.Popen(args)
p.wait()

但这给出了一个错误:

Error: Could not find or load main class ...clldsystem.esa.ESAAnalyzer

我该如何解决?

问题是您将..点放在错误的位置。

clldsystem.esa.ESAAnalyzer是Java类,其中包含将由java执行的main()方法。 java试图通过查找从-cp在类路径中指定的jar中加载的类来查找clldsystem.esa.ESAAnalyzer

所以尝试更换

java -cp "../lib/*:esalib.jar" ../clldsystem.esa.ESAAnalyzer

具有以下内容:

java -cp "../lib/*:../esalib.jar" clldsystem.esa.ESAAnalyzer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM