# HG changeset patch # User Jan Vrany # Date 1358944293 0 # Node ID 0fcf5a5dcb66db488542ad8089f312c3a3eed50e # Parent 3277db94a67ca722d2228f708ca08605f52f3fd2 Cleanup in JavaRelease: javaHome/jreHome/jdkHome. diff -r 3277db94a67c -r 0fcf5a5dcb66 JavaRelease.st --- a/JavaRelease.st Mon Jan 21 15:15:23 2013 +0100 +++ b/JavaRelease.st Wed Jan 23 12:31:33 2013 +0000 @@ -279,8 +279,13 @@ ]. ^bundle + " + Java release codeBundle + " + "Created: / 12-01-2013 / 15:50:58 / Jan Vrany " "Modified: / 15-01-2013 / 16:44:34 / Jan Vrany " + "Modified (comment): / 23-01-2013 / 12:25:28 / Jan Vrany " ! javaExtDirs @@ -316,8 +321,14 @@ ! javaHome + "Answer a Java home. This is either path to JRE (no JDK is found) or to + full JDK (if JDK is installed) - "Answer a Java home" + If you want path to either JRE or JDK, use + #jreHome + #jdkHome + + " javaHome isNil ifTrue:[ javaHome := self searchForJavaHome. @@ -330,6 +341,7 @@ "Created: / 27-10-2010 / 18:59:35 / Jan Vrany " "Modified: / 27-07-2012 / 00:24:17 / Jan Vrany " + "Modified (comment): / 23-01-2013 / 12:19:45 / Jan Vrany " ! javaHomeOrNil @@ -374,6 +386,25 @@ ^ self subclassResponsibility ! +jdkHome + + "Answers the directory where the JDK lives or nil, if no JDK is found" + + | jdkHome | + + self javaHome isNil ifTrue:[ ^ nil ]. + + ^((jdkHome := self javaHome) asFilename / 'jre') exists + ifTrue:[jdkHome] + ifFalse:[nil]. + + " + Java release searchForJavaHome; jdkHome + " + + "Created: / 23-01-2013 / 12:20:48 / Jan Vrany " +! + jreHome "Answers the directory where the JRE lives" @@ -633,7 +664,7 @@ bundle := nil. classPath := OrderedCollection new. jreHome := self jreHome asFilename. - jdkHome := self javaHome asFilename. + jdkHome := self jdkHome asFilename. jreHome isNil ifTrue:[ ^ #() ]. "Ensure, that rt.jar is first" classPath add: (jreHome / 'lib' / 'rt.jar') pathName. @@ -642,7 +673,7 @@ self searchForClassPathIn: jreHome / 'lib' / 'modules'. "Search for JDK tools (javac & co)" - (jdkHome ~= javaHome and:[(jdkHome / 'lib') exists]) ifTrue:[ + (jdkHome notNil and:[(jdkHome / 'lib') exists]) ifTrue:[ self searchForClassPathIn: jdkHome / 'lib' ]. ^self classPath @@ -654,7 +685,7 @@ " "Created: / 27-10-2010 / 21:15:00 / Jan Vrany " - "Modified: / 12-01-2013 / 15:55:04 / Jan Vrany " + "Modified: / 23-01-2013 / 12:26:07 / Jan Vrany " ! searchForClassPathIn: dir @@ -678,15 +709,12 @@ h := (OperatingSystem getEnvironment:'JAVA_HOME'). h notNil ifTrue:[ - javaHome := h asFilename. + javaHome := h asFilename. "/Do not trust JAVA_HOME, it might be wrong (on Windows machine due "/to a registry mess - javaHome exists ifTrue:[ - (javaHome / 'jre') exists ifTrue:[ - javaHome := javaHome / 'jre'. - ]. - ^javaHome - ] + ((javaHome / 'lib' / 'rt.jar') exists + or:[(javaHome / 'jre' / 'lib' / 'rt.jar') exists]) + ifTrue:[ ^ javaHome ]. ]. self javaHomes do: @@ -705,11 +733,10 @@ " "Created: / 27-10-2010 / 19:03:56 / Jan Vrany " - "Modified: / 22-11-2010 / 13:18:15 / Jan Vrany " "Modified: / 15-03-2011 / 13:29:14 / Jan Kurs " "Modified: / 15-03-2011 / 13:47:02 / Marcel Hlopko " "Modified: / 19-07-2012 / 11:08:04 / jv" - "Modified (comment): / 15-12-2012 / 01:04:34 / Jan Vrany " + "Modified: / 23-01-2013 / 12:16:49 / Jan Vrany " ! searchForSourcePath @@ -977,14 +1004,20 @@ arch := OperatingSystem getSystemInfo at:#machine. arch = 'x86_64' ifTrue:[arch := 'amd64']. - ^ { '/usr/lib/jvm/java-6-openjdk/jre' . - '/usr/lib/jvm/java-6-openjdk-',arch,'/jre' } + ^ { + '/usr/lib/jvm/java-6-openjdk' . "/ JDK - older linuxes + '/usr/lib/jvm/java-6-openjdk-',arch. "/ JDK - newer linuxes + + '/usr/lib/jvm/java-6-openjdk/jre' . "/ JRE - older linuxes + '/usr/lib/jvm/java-6-openjdk-',arch, '/jre' "/ JRE - newer linuxes + + } " JavaRelease::OpenJDK6 new javaHomesOnUNIX " - "Modified (comment): / 08-01-2013 / 12:22:50 / Jan Vrany " + "Modified: / 23-01-2013 / 12:19:05 / Jan Vrany " ! name @@ -1025,18 +1058,14 @@ searchForSourcePath - | java_homes src_zip | + | jdkHome src_zip | super searchForSourcePath. sourcePath := OrderedCollection new. - java_homes := OrderedCollection new. - self javaHome notNil ifTrue:[ - java_homes add: self javaHome - ]. - - java_homes do:[ :java_home | - src_zip := java_home asFilename directory / 'src.zip'. + jdkHome := self jdkHome. + jdkHome notNil ifTrue:[ + src_zip := jdkHome asFilename / 'src.zip'. src_zip exists ifTrue:[sourcePath add: src_zip pathName]. ]. @@ -1045,7 +1074,7 @@ " "Created: / 03-09-2012 / 18:38:36 / Jan Vrany " - "Modified: / 12-01-2013 / 15:56:06 / Jan Vrany " + "Modified: / 23-01-2013 / 12:22:33 / Jan Vrany " ! ! !JavaRelease::OpenJDK7 class methodsFor:'documentation'! @@ -1354,3 +1383,4 @@ version_SVN ^ '§Id:: §' ! ! +