JavaRelease.st
branchcvs_MAIN_tracking
changeset 3406 e18d5c89221d
parent 3402 f8bc54a17beb
child 3407 183e4567bda7
--- a/JavaRelease.st	Fri Mar 13 13:33:16 2015 +0000
+++ b/JavaRelease.st	Fri Mar 13 16:09:02 2015 +0000
@@ -801,29 +801,39 @@
 
 javaHomeOnWindowsFromRegistryForRelease: vsn
     "Return path to java home (either JDK or JRE) based on values in registry.
-     If not on windows or registry key not found, return nil"
+     If not on windows or registry key not found, return nil. 
+
+     CAVEAT: This method only finds Oracle JDKs"
 
     |entry home |
 
     OperatingSystem isMSWINDOWSlike ifFalse:[ ^ nil ].
-    "Search for JDK first..."
-    entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\', vsn).
+    "Search for JDK first, prefer 46 bit over 32 bit (even though it does not matter for STX:LIBJAVA)"
+    entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\', vsn flags: #KEY_WOW64_64KEY.
+    entry isNil ifTrue:[ 
+        entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\', vsn flags: #KEY_WOW64_32KEY.
+    ].
+    "Search for JRE...."
+    entry isNil ifTrue:[ 
+        entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\', vsn flags: #KEY_WOW64_64KEY.
+    ].
+    entry isNil ifTrue:[ 
+        entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\', vsn flags: #KEY_WOW64_32KEY.
+    ].
     entry notNil ifTrue:[
         home := entry valueNamed:'JavaHome'.
         (home notNil and:[home asFilename exists]) ifTrue:[ ^ home ].
     ].
-    "Search for JRE...."
-    entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\', vsn).
-    entry notNil ifTrue:[
-        home := entry valueNamed:'JavaHome'.
-        (home notNil and:[home asFilename exists]) ifTrue:[ ^ home ].
-    ].
-
-    ^nil
+    ^ nil
+
+    "
+    JavaRelease::OracleJDK7 new searchForJavaHome
+    JavaRelease::OracleJDK8 new searchForJavaHome
+    "
 
     "Created: / 16-02-2013 / 02:52:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 21-02-2013 / 03:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-02-2015 / 14:26:10 / jv"
+    "Modified (comment): / 13-03-2015 / 15:41:40 / jv"
 !
 
 javaHomeOrNil