diff --git a/Library/Homebrew/compat/language/java.rb b/Library/Homebrew/compat/language/java.rb index 3ad89ebc74..2bcf485e2f 100644 --- a/Library/Homebrew/compat/language/java.rb +++ b/Library/Homebrew/compat/language/java.rb @@ -5,7 +5,8 @@ module Language class << self module Compat def java_home_cmd(version = nil) - odeprecated "Language::Java::java_home_cmd", "Language::Java::java_home" + odeprecated "Language::Java.java_home_cmd", + "Language::Java.java_home or Language::Java.overridable_java_home_env" # macOS provides /usr/libexec/java_home, but Linux does not. return system_java_home_cmd(version) if OS.mac? diff --git a/Library/Homebrew/extend/os/mac/language/java.rb b/Library/Homebrew/extend/os/mac/language/java.rb index 4661652c0b..a92b386ece 100644 --- a/Library/Homebrew/extend/os/mac/language/java.rb +++ b/Library/Homebrew/extend/os/mac/language/java.rb @@ -18,12 +18,12 @@ module Language Pathname.new path if path.present? end - # @private def self.java_home_shell(version = nil) f = find_openjdk_formula(version) return (f.opt_libexec/"openjdk.jdk/Contents/Home").to_s if f "$(#{system_java_home_cmd(version)})" end + private_class_method :java_home_shell end end diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index e0c331f4dd..c5b9760659 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -370,12 +370,8 @@ class Pathname # Writes an exec script that invokes a Java jar def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil) - mkpath - java_home = ("JAVA_HOME=\"#{Language::Java.java_home_shell(java_version)}\" " if java_version) - join(script_name).write <<~SH - #!/bin/bash - #{java_home}exec java #{java_opts} -jar #{target_jar} "$@" - SH + (self/script_name).write_env_script "java #{java_opts} -jar #{target_jar}", + Language::Java.overridable_java_home_env(java_version) end def install_metafiles(from = Pathname.pwd) diff --git a/Library/Homebrew/language/java.rb b/Library/Homebrew/language/java.rb index 610c73a5b5..77bddccf5f 100644 --- a/Library/Homebrew/language/java.rb +++ b/Library/Homebrew/language/java.rb @@ -33,10 +33,10 @@ module Language req.java_home end - # @private def self.java_home_shell(version = nil) java_home(version).to_s end + private_class_method :java_home_shell def self.java_home_env(version = nil) { JAVA_HOME: java_home_shell(version) }