/ / Esecuzione di JAR Java con Popen: Impossibile trovare o caricare JAR principale della classe - python, sottoprocesso, popen

Esecuzione di JAR Java con Popen: impossibile trovare o caricare JAR di classe principale - python, sottoprocesso, popen

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:

  1. Esecuzione da riga di comando del file JAR. Controllato.
  2. Popen con semplice java e -version. controllato.
  3. 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 № 1

Manca 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" , ~~~