我正在研究 ESA 的实现,我更改了其中一个 java 文件,使用命令对其进行了编译
javac -cp lib/*:esalib.jar ./src/clldsystem/esa/ESAAnalyzer.java
并将.class文件粘贴到.jar文件中对应的目录(esalib.jar/clldsystem/esa)。我也将名称更改为原始对应的 .class 文件。
接下来,我有一个使用命令的 python 脚本
java -cp lib/*:esalib.jar clldsystem.esa.ESAAnalyzer param1 param2
但是在运行 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
等等每次迭代