2014-01-20 3 views
0

У меня есть несколько версий java. Недавно во время тестирования я заметил, что cygwin и powershell работают под разными версиями, и полагали, что это проблема с моим путем, но это выглядит чем-то странным. В PowerShell я получаю:Cygwin запускает другую версию java, чем windows powershell

PS C:\Users\djpeaco> echo $env:JAVA_HOME 
PS C:\Users\pavon> where.exe java 
C:\Windows\System32\java.exe 
PS C:\Users\pavon> C:\Windows\System32\java.exe -version 
java version "1.7.0_45" 
Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) 

А потом в Cygwin (Баш):

$ echo $JAVA_HOME 

$ which java 
/cygdrive/c/Windows/system32/java 
$ /cygdrive/c/Windows/system32/java -version 
java version "1.7.0_51" 
Java(TM) SE Runtime Environment (build 1.7.0_51-b13) 
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode) 

Я попытался restaring как раковины, в случае, если было какое-то изменение окружающей среды, что один не поднял, но не решила проблему. Кроме того, cmd.exe ведет себя так же, как powershell. Кто-нибудь знает, почему запуск одного и того же исполняемого файла в cygwin vs powershell закончится запуском разных JVM?

ответ

3

Является ли Cygwin 32-разрядным приложением? Вполне возможно, что если Cygwin 32-разрядный, операционная система перенаправляет c:\windows\system32 (настоящую 64-разрядную папку System32) на c:\windows\syswow64 (32-разрядная папка System32).

Сравнить java.exe от c:\windows\system32 до java.exe в c:\windows\syswow64. Они могут быть разными.

+1

Спасибо за быстрый ответ! Это было именно то, что происходило. – pavon

Смежные вопросы