错误:在一次调用中找不到或加载主类,在同一个脚本中的另一个调用中没有错误

2024-05-15 10:47:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做ESA的一个实现,我修改了其中一个java文件,用命令编译了它

^{1}$

并将.class文件粘贴到相应的目录中(esalib.jar/clldsystem/esa)在.jar文件中。我还更改了原来对应的.class文件的名称。在

接下来,我有一个使用命令的python脚本

^{pr2}$

但在运行python脚本时,该命令在用作以下用途时运行良好:

x='java -cp "lib/*:esalib.jar" clldsystem.esa.ESAAnalyzer computer apple'
args=shlex.split(x)
p=subprocess.Popen(args)
p.wait()

但给出一个错误:当用作以下对象时,无法找到或加载主类:

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

在同一个剧本里。我正在从一个文件中读取变量word1和word2。 为什么它在一个地方工作正常,而在另一个地方出错呢?我已经检查了我从文件中正确读取的打印语句,因此这一定不是问题。 谢谢

以下是所发生事情的详细情况:

nishant@nishant-Inspiron-1545:~/esalib$ python test.py
['java', '-cp', 'lib/*:esalib.jar', 'clldsystem.esa.ESAAnalyzer', 'bottle', 'apple']
index loaded to memory
bottl
appl
vector 1 dimensions: 1782
vector 2 dimensions: 2766
0.024397644631615697
beach
['people', 'sand', 'desert', 'snow']
['java', '-cp', '"lib/*:esalib.jar"', 'clldsystem.esa.ESAAnalyzer', 'word1', 'word2']
Error: Could not find or load main class clldsystem.esa.ESAAnalyzer
beach 
people
['java', '-cp', '"lib/*:esalib.jar"', 'clldsystem.esa.ESAAnalyzer', 'word1', 'word2']
Error: Could not find or load main class clldsystem.esa.ESAAnalyzer
beach
sand

每次迭代都是如此


Tags: 文件命令libargsjavacpclassjar
1条回答
网友
1楼 · 发布于 2024-05-15 10:47:44

这是有效的:

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()

相关问题 更多 >