2013-06-23 19 views
6

jarファイルを実行し、jarファイルが私のpythonプログラムで何をしているのかを印刷したいのですが、Windowsのコマンドラインを使わずに、私はウェブ全体を検索しましたが、これを行う方法について説明します。PythonからJarファイルを実行する

私のプログラムはMinecraftサーバーラッパーで、server.jarファイルを実行し、Windowsコマンドプロンプト内で実行するのではなく、Pythonシェル内で実行します。

アイデア?

+0

こんにちはダニエル、他のアプリケーションが何をしているのか聞いてみたいですか?それはあなたが聴きたいログなのでしょうか?ネットワークトラフィック?他に何か?あなたの問題の健全な絵を描くために、より詳細な情報を提供してください。お役に立てれば! – jmort253

+1

もう少し詳しい情報があります。私は何をしているのか説明するのに役立ちます。 – Elxafil

答えて

7

まず、プログラムを実行する必要があります。そうするための便利な関数:

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

出力のすべての行でiterableを返します。 run_commandとして
そして、あなたは

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

アドオンもimport subprocessを使用して線や印刷にアクセスすることができますが、subprocessを使用しています。

+0

b'Error:メインクラスのcraftbukkit.jarを見つけることができませんでした。\ r \ n 'というエラーが表示されるので、どうしたらいいですか? – Elxafil

+0

あなたのJavaコードは正常に動作していますか?私は独立しているのですか? – svineet

+0

出力はもともとjvmからのものなので、あなたのJavaコードにいくつかのバグがあると思います。 – svineet