Почему Python не может выполнить java.exe через подпроцесс?

После обновления Java с версии 1.6 до версии 1.7 x64 (в Windows 7) я внезапно перестал запускать java.exe через модуль subprocessPython 2.7. Раньше просто работал следующий сценарий:

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.7 как-то все испортила, так как я только что подтвердил, что версия 1.6 в порядке.

6
задан aknuds1 11 May 2012 в 11:05
поделиться