Java を 1.6 から 1.7 x64 (Windows 7 上) にアップグレードした後、Python 2.7 のsubprocess
モジュールを介して突然 java.exe を起動できなくなりました。次のスクリプトは、以前は機能していました。
import subprocess
subprocess.check_call([r"C:\Windows\system32\java.exe"])
今は次のように失敗します:
Traceback (most recent call last):
File ".\tst.py", line 2, in <module>
subprocess.check_call([r"C:\Windows\system32\java.exe"])
File "C:\Python27\lib\subprocess.py", line 506, in check_call
retcode = call(*popenargs, **kwargs)
File "C:\Python27\lib\subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
C:\Windows\system32\java.exe
実際に存在し、アプリケーションであり、コマンド シェルから実行できることも確認しました。
ここで何がうまくいかないのですか?
編集:C:\Program Files\Java\jre7\bin\java.exe
Python から
開始できることがわかったのでC:\Windows\system32\java.exe
、技術的には Windows アプリケーションですが、奇妙な疑似ショートカットである必要があります。バージョン 1.6 が正常であることを確認したばかりなので、バージョン 1.7 は何らかの形でそれを台無しにしたに違いありません。