ESA の実装に取り組んでいます。Java ファイルの 1 つを変更し、コマンドを使用してコンパイルしました。
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
繰り返しごとに