Il mio JAR Java viene eseguito correttamente nella riga di comando di Linux e mi piacerebbe averlo eseguito tramite uno script python.
Ottengo il seguente errore quando provo Popen
:
Error: Could not find or load main class jar
Qualche idea?
Quello che ho provato fino ad ora:
- Esecuzione da riga di comando del file JAR. Controllato.
Popen
con semplicejava
e-version
. controllato.- Aggiornare
cwd
. Controllato.
Chiamata Java funzionante:
>>> javaCall = subprocess.Popen(["java", "-version"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Comando fallito:
>>> javaCall = subprocess.Popen(["java", "jar" ,
"abs/path/to/jar/abc.jar",
"arg 1", "arg 2", "arg 3"], cwd =
"/abs/path/where/jar and python files live", stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> output, err = javaCall.communicate()
>>> print err
Error: Could not find or load main class jar
Qualche suggerimento che mi manca?
risposte:
1 per risposta № 1Manca un - davanti al barattolo
javaCall = subprocess.Popen(["java", "jar" ,
"abs/path/to/jar/abc.jar",
"arg 1", "arg 2", "arg 3"], cwd =
"/abs/path/where/jar and python files live", stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> output, err = javaCall.communicate()
>>> print err
Error: Could not find or load main class jar
Cambia in: javaCall = subprocess.Popen(["java", "-jar" , ~~~