771 "Modified: / 08-12-2014 / 00:16:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
773 "Modified: / 08-12-2014 / 00:16:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
772 ! |
774 ! |
773 |
775 |
774 javaHomeOnWindowsFromRegistryForRelease: vsn |
776 javaHomeOnWindowsFromRegistryForRelease: vsn |
775 "Return path to java home (either JDK or JRE) based on values in registry. |
777 "Return path to java home (either JDK or JRE) based on values in registry. |
776 If not on windows or registry key not found, return nil" |
778 If not on windows or registry key not found, return nil. |
|
779 |
|
780 CAVEAT: This method only finds Oracle JDKs" |
777 |
781 |
778 |entry home | |
782 |entry home | |
779 |
783 |
780 OperatingSystem isMSWINDOWSlike ifFalse:[ ^ nil ]. |
784 OperatingSystem isMSWINDOWSlike ifFalse:[ ^ nil ]. |
781 "Search for JDK first..." |
785 "Search for JDK first, prefer 46 bit over 32 bit (even though it does not matter for STX:LIBJAVA)" |
782 entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\', vsn). |
786 entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\', vsn flags: #KEY_WOW64_64KEY. |
|
787 entry isNil ifTrue:[ |
|
788 entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\', vsn flags: #KEY_WOW64_32KEY. |
|
789 ]. |
|
790 "Search for JRE...." |
|
791 entry isNil ifTrue:[ |
|
792 entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\', vsn flags: #KEY_WOW64_64KEY. |
|
793 ]. |
|
794 entry isNil ifTrue:[ |
|
795 entry := OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\', vsn flags: #KEY_WOW64_32KEY. |
|
796 ]. |
783 entry notNil ifTrue:[ |
797 entry notNil ifTrue:[ |
784 home := entry valueNamed:'JavaHome'. |
798 home := entry valueNamed:'JavaHome'. |
785 (home notNil and:[home asFilename exists]) ifTrue:[ ^ home ]. |
799 (home notNil and:[home asFilename exists]) ifTrue:[ ^ home ]. |
786 ]. |
800 ]. |
787 "Search for JRE...." |
801 ^ nil |
788 entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\', vsn). |
802 |
789 entry notNil ifTrue:[ |
803 " |
790 home := entry valueNamed:'JavaHome'. |
804 JavaRelease::OracleJDK7 new searchForJavaHome |
791 (home notNil and:[home asFilename exists]) ifTrue:[ ^ home ]. |
805 JavaRelease::OracleJDK8 new searchForJavaHome |
792 ]. |
806 " |
793 |
|
794 ^nil |
|
795 |
807 |
796 "Created: / 16-02-2013 / 02:52:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
808 "Created: / 16-02-2013 / 02:52:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
797 "Modified: / 21-02-2013 / 03:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
809 "Modified: / 21-02-2013 / 03:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
798 "Modified: / 20-02-2015 / 14:26:10 / jv" |
810 "Modified (comment): / 13-03-2015 / 15:41:40 / jv" |
799 ! |
811 ! |
800 |
812 |
801 javaHomeOrNil |
813 javaHomeOrNil |
802 "Answer a Java home" |
814 "Answer a Java home" |
803 |
815 |