2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-11-27 11:52:30 -08:00
|
|
|
module Language
|
|
|
|
module Java
|
2020-06-10 15:11:56 +01:00
|
|
|
def self.system_java_home_cmd(version = nil)
|
2018-11-27 11:52:30 -08:00
|
|
|
version_flag = " --version #{version}" if version
|
2020-06-19 11:46:31 +01:00
|
|
|
"/usr/libexec/java_home#{version_flag} --failfast 2>/dev/null"
|
2018-11-27 11:52:30 -08:00
|
|
|
end
|
2020-06-10 15:11:56 +01:00
|
|
|
private_class_method :system_java_home_cmd
|
2018-11-27 11:52:30 -08:00
|
|
|
|
|
|
|
def self.java_home(version = nil)
|
2020-06-19 11:46:31 +01:00
|
|
|
f = find_openjdk_formula(version)
|
|
|
|
return f.opt_libexec/"openjdk.jdk/Contents/Home" if f
|
|
|
|
|
2020-06-10 15:11:56 +01:00
|
|
|
cmd = system_java_home_cmd(version)
|
2020-06-19 11:46:31 +01:00
|
|
|
path = Utils.popen_read(cmd).chomp
|
|
|
|
|
|
|
|
Pathname.new path if path.present?
|
2018-11-27 11:52:30 -08:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.java_home_shell(version = nil)
|
2020-06-19 11:46:31 +01:00
|
|
|
f = find_openjdk_formula(version)
|
|
|
|
return (f.opt_libexec/"openjdk.jdk/Contents/Home").to_s if f
|
|
|
|
|
2020-06-10 15:11:56 +01:00
|
|
|
"$(#{system_java_home_cmd(version)})"
|
2018-11-27 11:52:30 -08:00
|
|
|
end
|
2020-06-19 11:55:05 +01:00
|
|
|
private_class_method :java_home_shell
|
2018-11-27 11:52:30 -08:00
|
|
|
end
|
|
|
|
end
|