--- a/JavaRelease.st Sat Feb 16 09:33:16 2013 +0000
+++ b/JavaRelease.st Sat Feb 16 03:04:00 2013 -0800
@@ -909,6 +909,26 @@
"Modified: / 16-12-2012 / 15:46:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+javaHomeOnWindowsFromRegistry
+ "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"
+
+ |entry vsn home |
+
+ entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit').
+ entry isNil ifTrue:[ ^ nil ].
+ vsn := self javaHomeOnWindowsJDKRegistryKey.
+ vsn notNil ifTrue:[
+ entry := (OperatingSystem registryEntry
+ key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\',vsn).
+ home := entry valueNamed:'JavaHome'.
+ (home notNil and:[home asFilename exists]) ifTrue:[ ^ home ].
+ ].
+ ^nil
+
+ "Created: / 16-02-2013 / 02:52:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
javaHomesOnUNIX
| arch |
@@ -1045,6 +1065,12 @@
^'jdk1.6'
"Created: / 19-07-2012 / 11:04:34 / jv"
+!
+
+javaHomeOnWindowsJDKRegistryKey
+ ^'1.6'
+
+ "Created: / 16-02-2013 / 02:49:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaRelease::OpenJDK6 methodsFor:'searching'!
@@ -1214,6 +1240,12 @@
^'jdk1.7'
"Created: / 19-07-2012 / 11:05:02 / jv"
+!
+
+javaHomeOnWindowsJDKRegistryKey
+ ^'1.7'
+
+ "Created: / 16-02-2013 / 02:49:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaRelease::OracleJDK6 class methodsFor:'documentation'!
@@ -1256,20 +1288,11 @@
!
javaHomesOnWindows
- |entry vsn home paths |
+ |home paths |
- entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit').
- entry notNil ifTrue:[
- vsn := entry valueNamed:'CurrentVersion'.
- ].
- vsn notNil ifTrue:[
- entry := (OperatingSystem registryEntry
- key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\',vsn).
- home := entry valueNamed:'JavaHome'.
- home notNil ifTrue:[
- ^ (Array with:(home))
- ].
- ].
+ home := self javaHomeOnWindowsFromRegistry.
+ home notNil ifTrue:[ ^ Array with: home ].
+
paths := OrderedCollection new.
#(
'C:\Program Files\Java'
@@ -1298,7 +1321,7 @@
"Modified (format): / 19-08-2011 / 00:46:40 / cg"
"Modified: / 19-07-2012 / 11:04:44 / jv"
- "Modified (comment): / 06-02-2013 / 12:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-02-2013 / 02:57:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
javaNativeMethodsImplementation
@@ -1342,7 +1365,11 @@
!JavaRelease::OracleJDK6 methodsFor:'validating'!
validateJavaHome2: home
- | f |
+ | homeFromRegistry f |
+
+ homeFromRegistry := self javaHomeOnWindowsFromRegistry.
+ homeFromRegistry = home ifTrue:[ ^ true ].
+
"JDK..."
(f := home / 'LICENSE') exists ifTrue:[
f readingFileDo:[:s|
@@ -1372,6 +1399,7 @@
"
"Created: / 12-02-2013 / 02:52:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-02-2013 / 02:54:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaRelease::OracleJDK7 class methodsFor:'documentation'!
@@ -1411,20 +1439,11 @@
!
javaHomesOnWindows
- |entry vsn home paths |
+ |home paths |
- entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit').
- entry notNil ifTrue:[
- vsn := entry valueNamed:'CurrentVersion'.
- ].
- vsn notNil ifTrue:[
- entry := (OperatingSystem registryEntry
- key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\',vsn).
- home := entry valueNamed:'JavaHome'.
- home notNil ifTrue:[
- ^ (Array with:(home))
- ].
- ].
+ home := self javaHomeOnWindowsFromRegistry.
+ home notNil ifTrue:[ ^ Array with: home ].
+
paths := OrderedCollection new.
#(
'C:\Program Files\Java'
@@ -1453,7 +1472,7 @@
"Modified (format): / 19-08-2011 / 00:46:40 / cg"
"Modified: / 19-07-2012 / 11:04:44 / jv"
- "Modified (comment): / 06-02-2013 / 12:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-02-2013 / 02:57:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
javaNativeMethodsImplementation
@@ -1499,7 +1518,11 @@
!JavaRelease::OracleJDK7 methodsFor:'validating'!
validateJavaHome2: home
- | f |
+ | homeFromRegistry f |
+
+ homeFromRegistry := self javaHomeOnWindowsFromRegistry.
+ homeFromRegistry = home ifTrue:[ ^ true ].
+
"JDK..."
(f := home / 'release') exists ifTrue:[
f readingFileDo:[:s|
@@ -1527,6 +1550,7 @@
"
"Created: / 12-02-2013 / 02:52:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-02-2013 / 02:54:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaRelease::SunJDK122 class methodsFor:'documentation'!