2013-06-23 13 views
6

Ich möchte ein Programm, das JAR-Dateien ausführen und drucken können, was auch immer die JAR-Datei in meinem Python-Programm tut, aber ohne die Windows-Befehlszeile habe ich im ganzen Internet gesucht, aber nichts kommt mit wie man das macht.Running Jar-Dateien von Python

Mein Programm ist ein Minecraft-Server-Wrapper und ich möchte, dass es die server.jar-Datei ausführt, und anstatt es in der Windows-Eingabeaufforderung auszuführen, möchte ich, dass es in der Python-Shell ausgeführt wird.

Irgendwelche Ideen?

+0

Hallo Daniel, was ist der Zweck, zu hören, was andere Anwendungen tun? Sind es die Protokolle, die Sie hören möchten oder etwas anderes? Netzwerktraffic? Etwas anderes? Bitte geben Sie einige weitere Details an, um ein gesundes Bild Ihres Problems zu zeichnen. Hoffe das hilft! – jmort253

+1

Es gibt jetzt ein paar mehr Informationen, Hoffnung, die hilft zu erklären, was ich mache. – Elxafil

Antwort

7

Zuerst müssen Sie das Programm ausführen. Eine praktische Funktion dafür:

def run_command(command): 
    p = subprocess.Popen(command, 
        stdout=subprocess.PIPE, 
        stderr=subprocess.STDOUT) 
    return iter(p.stdout.readline, b'') 

Es wird eine iterable mit allen Zeilen der Ausgabe zurückgeben.
Und Sie können die Linien und Druck Zugriff

for output_line in run_command('java -jar jarfile.jar'): 
    print(output_line) 

Add Verwendung auch import subprocess, wie run_command verwendet subprocess.

+0

Ich bekomme einen Fehler, der sagt b'Error: Konnte Hauptklasse craftbukkit.jar nicht finden oder laden, also was mache ich. – Elxafil

+0

Funktioniert Ihr Java-Code in Ordnung? Ich meine unabhängig? – svineet

+0

die Ausgabe stammt ursprünglich von der jvm, also nehme ich an, dass Ihr Java-Code einen Bug hat. – svineet