Después de actualizar Java de 1.6 a 1.7 x64 (en Windows 7), de repente ya no puedo ejecutar java.exe a través del módulo subprocess
de Python 2.7. La siguiente secuencia de comandos se utiliza para sólo el trabajo:¿Por qué Python no puede ejecutar java.exe por subproceso?
import subprocess
subprocess.check_call([r"C:\Windows\system32\java.exe"])
Ahora se produce un error como este:
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
También he confirmado que C:\Windows\system32\java.exe
existe de hecho, es una aplicación, y puede ser ejecutado desde la consola de comandos .
¿Qué falla aquí?
EDIT: He descubierto que puedo comenzar C:\Program Files\Java\jre7\bin\java.exe
desde Python, por lo C:\Windows\system32\java.exe
debe haber alguna extraña pseudo-atajo aunque técnicamente una aplicación de Windows. La versión 1.7 debe haberlo estropeado de alguna manera, ya que confirmó que la versión 1.6 está bien.
¿Estás seguro de que no es un enlace? – Marcin
@Marcin De acuerdo con las propiedades del archivo, el tipo de archivo es 'Application (.exe)'. – aknuds1
Eso es ... raro. – Marcin