Javaを1.6から1.7 x64(Windows 7)にアップグレードした後、突然Python 2.7のsubprocess
モジュール経由でjava.exeを起動できなくなりました。使用される次のスクリプトは、ちょうど仕事:私もC:\Windows\system32\java.exe
が実際に存在しないことを確認しました、アプリケーションであり、コマンドシェルから実行することができPythonでサブプロセス経由で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
:
import subprocess
subprocess.check_call([r"C:\Windows\system32\java.exe"])
は、今ではこのように失敗します。
ここで何が問題になるのですか?
EDIT: 私は、PythonからC:\Program Files\Java\jre7\bin\java.exe
を開始することができますので、C:\Windows\system32\java.exe
は技術的には、Windowsのアプリケーションもののいくつかの奇妙な擬似ショートカットでなければならないことを私を見つけました。私がちょうどバージョン1.6が正常であることを確かめたので、バージョン1.7は何とかそれを台無しにしていたに違いない。
本当にリンクではありませんか? – Marcin
@Marcinファイルプロパティによれば、ファイルタイプは 'Application(.exe)'です。 – aknuds1
それは...変だ。 – Marcin