--- a/JavaRelease.st Wed Jul 17 23:06:37 2019 +0200
+++ b/JavaRelease.st Wed Jul 17 23:45:27 2019 +0200
@@ -2713,33 +2713,40 @@
"Answers the directory where the JDK lives or nil, if no JDK is found"
- | dir vsn|
+ |dir vsn|
jdkHome notNil ifTrue:[^ jdkHome].
(dir := self javaHome) isNil ifTrue:[ ^ nil ].
- dir := dir asFilename.
- dir baseName = 'Contents' ifTrue:[
- dir := dir directory.
- ].
- vsn := dir baseName.
- (vsn startsWith:'1.8.0') ifTrue:[
- vsn := '1.8.0'
- ] ifFalse:[
- vsn := vsn copyTo:5
+ (dir asFilename hasSuffix:'jdk') ifTrue:[
+ jdkHome := dir.
+ ^ jdkHome.
].
- '/Library/Java/JavaVirtualMachines' asFilename directoryContentsAsFilenamesDo:[:f |
- (f baseName startsWith:vsn) ifTrue:[
- (f / 'Contents') exists ifTrue:[
- (f / 'Contents' / 'Home') exists ifTrue:[
- (f / 'Contents' / 'Home' / 'src.jar') exists ifTrue:[
- jdkHome := f pathName.
- ^ jdkHome
- ].
- ].
- ].
- ].
- ].
+
+"/ dir := dir asFilename.
+"/ [ #( 'jre' 'Home' 'Contents' ) contains:[:nm | dir baseName = nm]] whileTrue:[
+"/ dir := dir directory.
+"/ ].
+"/ vsn := dir baseName.
+"/ vsn := vsn withoutPrefix:'jdk'.
+"/ vsn := vsn withoutSuffix:'.jdk'.
+"/ (vsn startsWith:'1.8.0') ifTrue:[
+"/ vsn := '1.8.0'
+"/ ] ifFalse:[
+"/ vsn := vsn copyTo:5
+"/ ].
+"/ '/Library/Java/JavaVirtualMachines' asFilename directoryContentsAsFilenamesDo:[:f |
+"/ (f baseName startsWith:vsn) ifTrue:[
+"/ (f / 'Contents') exists ifTrue:[
+"/ (f / 'Contents' / 'Home') exists ifTrue:[
+"/ (f / 'Contents' / 'Home' / 'src.jar') exists ifTrue:[
+"/ jdkHome := f pathName.
+"/ ^ jdkHome
+"/ ].
+"/ ].
+"/ ].
+"/ ].
+"/ ].
^ super jdkHome
"
@@ -2749,7 +2756,7 @@
"
"Created: / 23-01-2013 / 12:20:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 03-09-2018 / 16:11:52 / Claus Gittinger"
+ "Modified (format): / 17-07-2019 / 23:41:56 / Claus Gittinger"
!
jniLibDirInJreHome