2013-06-23 19 views
6

Chcę utworzyć program, który będzie mógł wykonywać pliki jar i drukować cokolwiek plik jar wykonuje w moim programie Pythona, ale bez użycia wiersza poleceń systemu Windows, przeszukałem całą sieć, ale nic nie nadchodzi z tym, jak to zrobić.Uruchamianie plików jar z Pythona

Mój program jest opakowaniem serwera Minecraft i chcę, aby uruchamiał on plik server.jar i zamiast uruchamiać go w wierszu polecenia systemu Windows chcę, aby był uruchamiany wewnątrz powłoki Pythona.

Wszelkie pomysły?

+0

Cześć Daniel, jaki jest cel tego, że chcesz słuchać, co robią inne aplikacje? Czy to dzienniki, których chcesz słuchać, czy coś innego? Ruch w sieci? Coś innego? Podaj więcej szczegółów, aby uzyskać zdrowy obraz problemu. Mam nadzieję że to pomoże! – jmort253

+1

Jest teraz trochę więcej informacji, Hope, która pomaga wyjaśnić, co robię. – Elxafil

Odpowiedz

7

Najpierw musisz wykonać program. Przydatna funkcja:

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

Zwróci wartość iterowalną dla wszystkich linii wyjścia.
I można uzyskać dostęp do linii i drukować za pomocą

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

również dodać import subprocess, jak run_command wykorzystuje subprocess.

+0

Występuje błąd informujący, że b'Error: Nie można znaleźć lub wczytać głównej klasy craftbukkit.jar \ r \ n ', więc co mam zrobić? – Elxafil

+0

Czy Twój kod Java działa poprawnie? Mam na myśli niezależnie? – svineet

+0

dane wyjściowe pochodzą pierwotnie z jvm, więc przypuszczam, że twój kod Java ma jakiś błąd. – svineet

Powiązane problemy