@@ -13,7 +13,7 @@ class Cmd
1313 # in path.
1414 #
1515 def self . execute ( cmd , path )
16- stdout , stderr , status = internal_execute ( cmd )
16+ stdout , stderr , status = internal_execute ( cmd , nil )
1717
1818 file = File . new ( "#{ path } /stdout.txt" , 'w' )
1919 file . puts stdout
@@ -26,8 +26,8 @@ def self.execute(cmd, path)
2626 status
2727 end
2828
29- def self . execute_successfully ( cmd )
30- stdout , stderr , status = internal_execute ( cmd )
29+ def self . execute_successfully ( cmd , extra_java_home = nil )
30+ stdout , stderr , status = internal_execute ( cmd , extra_java_home )
3131
3232 unless status . success?
3333 logger . error "Command failed: #{ cmd } "
@@ -40,14 +40,20 @@ def self.execute_successfully(cmd)
4040 end
4141
4242 def self . stderr_of ( cmd )
43- _stdout , stderr , _status = internal_execute ( cmd )
43+ _stdout , stderr , _status = internal_execute ( cmd , nil )
4444 stderr
4545 end
4646
47- def self . internal_execute ( cmd )
48- logger . debug "execute command '#{ cmd } '"
47+ def self . internal_execute ( cmd , extra_java_home )
48+ logger . debug "execute command '#{ cmd } ' (extra_java_home: #{ extra_java_home } ) "
4949
50- stdout , stderr , status = Open3 . capture3 ( "#{ cmd } ;" )
50+ new_env = ENV . to_h
51+ unless extra_java_home . nil?
52+ new_env [ 'JAVA_HOME' ] = extra_java_home
53+ new_env [ 'PATH' ] = "#{ extra_java_home } /bin:#{ new_env [ 'PATH' ] } "
54+ end
55+
56+ stdout , stderr , status = Open3 . capture3 ( new_env , "#{ cmd } ;" )
5157
5258 logger . debug "status: #{ status } "
5359 logger . debug "stdout: #{ stdout } "
0 commit comments