JavaRelease.st
changeset 3398 579f0f85063a
parent 3389 5e24f9add064
child 3399 673ed393d7b3
--- a/JavaRelease.st	Fri Mar 13 13:33:16 2015 +0000
+++ b/JavaRelease.st	Fri Mar 13 16:09:02 2015 +0000
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1996-2015 by Claus Gittinger
 
@@ -773,29 +775,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