2012-05-01 6 views
0

私はそうのように、指定されたJavaクラス用のJVMを実行するためのPythonを使用しています:相対パスを使用してJavaメインクラスを実行しますか? (パイソン)

import subprocess 
output = subprocess.check_output("java MyJavaClass") 

はしかし、Javaクラスは、Pythonスクリプトと同じディレクトリにないので、これは動作しません。 。それはbinディレクトリに2つのディレクトリです。

だから私は、以下のような何かをすることが可能であろう期待していたが、それは動作しません:

output = subprocess.check_output("java ../../bin/MyJavaClass") 

任意のアイデア?

+0

Pythonコードを実行するときの作業ディレクトリとは何ですか? 'os.getcwd()' –

答えて

1

のJava、ディレクトリ構造を実行すると、パッケージ構造を意味し、それが必要である場合には

output = subprocess.check_output("java MyJavaClass", cwd="../../bin/") 

をお試しくださいd(クラスパスを使用していない限り)正しいディレクトリからjavaを実行します。

+0

Pythonで「ディレクトリを変更する」ので、この答えを受け入れました。どちらも良い答えです。 –

3

あなたはこのように、クラスパスを設定する必要があります。

java -classpath ../../bin MyJavaClass 

あなたのクラスは、特定のパッケージに属している場合、あなたはFQN(完全修飾名)を使用する必要があることに注意してください:

java -classpath ../../bin my.package.MyJavaClass 
関連する問題