@@ -75,17 +75,19 @@ def __init__(self, command, logger=None, main_class=None, java=None,
75
75
76
76
def FindJava (self , logger ):
77
77
"""
78
- Determine Java home directory based on platform.
78
+ Determine Java binary based on platform.
79
79
"""
80
80
java = None
81
81
system_name = platform .system ()
82
82
if system_name == 'SunOS' :
83
83
rel = platform .release ()
84
84
if rel == '5.10' :
85
- javaHome = "/usr/jdk/instances/jdk1.7.0"
85
+ java_home = "/usr/jdk/instances/jdk1.7.0"
86
86
elif rel == '5.11' :
87
- javaHome = "/usr/jdk/latest"
88
- java = os .path .join (javaHome , 'bin' , 'java' )
87
+ java_home = "/usr/jdk/latest"
88
+
89
+ if os .path .isdir (java_home ):
90
+ java = os .path .join (java_home , 'bin' , 'java' )
89
91
elif system_name == 'Darwin' :
90
92
cmd = Command ('/usr/libexec/java_home' )
91
93
cmd .execute ()
@@ -96,6 +98,14 @@ def FindJava(self, logger):
96
98
# Resolve the symlink.
97
99
java = os .path .realpath (link_path )
98
100
101
+ if not java :
102
+ java_home = os .environ .get ('JAVA_HOME' )
103
+ if java_home :
104
+ logger .debug ("Could not detemine Java home using standard "
105
+ "means, trying JAVA_HOME: {}" .format (java_home ))
106
+ if os .path .isdir (java_home ):
107
+ java = os .path .join (java_home , 'bin' , 'java' )
108
+
99
109
return java
100
110
101
111
0 commit comments