Merge pull request #10479 from jonchang/fix-macos-java
java: fix java_home on macOS
This commit is contained in:
commit
a3692ce3af
4
Library/Homebrew/extend/os/language/java.rb
Normal file
4
Library/Homebrew/extend/os/language/java.rb
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# typed: strict
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "extend/os/mac/language/java" if OS.mac?
|
||||||
10
Library/Homebrew/extend/os/mac/language/java.rb
Normal file
10
Library/Homebrew/extend/os/mac/language/java.rb
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# typed: true
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Language
|
||||||
|
module Java
|
||||||
|
def self.java_home(version = nil)
|
||||||
|
find_openjdk_formula(version)&.opt_libexec&.join("openjdk.jdk/Contents/Home")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -45,3 +45,5 @@ module Language
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
require "extend/os/language/java"
|
||||||
|
|||||||
@ -18,12 +18,22 @@ describe Language::Java do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "::java_home" do
|
describe "::java_home" do
|
||||||
it "returns valid JAVA_HOME if version is specified" do
|
it "returns valid JAVA_HOME if version is specified", :needs_macos do
|
||||||
|
java_home = described_class.java_home("1.8+")
|
||||||
|
expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/Home")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns valid JAVA_HOME if version is not specified", :needs_macos do
|
||||||
|
java_home = described_class.java_home
|
||||||
|
expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/Home")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns valid JAVA_HOME if version is specified", :needs_linux do
|
||||||
java_home = described_class.java_home("1.8+")
|
java_home = described_class.java_home("1.8+")
|
||||||
expect(java_home).to eql(f.opt_libexec)
|
expect(java_home).to eql(f.opt_libexec)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns valid JAVA_HOME if version is not specified" do
|
it "returns valid JAVA_HOME if version is not specified", :needs_linux do
|
||||||
java_home = described_class.java_home
|
java_home = described_class.java_home
|
||||||
expect(java_home).to eql(f.opt_libexec)
|
expect(java_home).to eql(f.opt_libexec)
|
||||||
end
|
end
|
||||||
@ -32,24 +42,24 @@ describe Language::Java do
|
|||||||
describe "::java_home_env" do
|
describe "::java_home_env" do
|
||||||
it "returns java_home path if version specified" do
|
it "returns java_home path if version specified" do
|
||||||
java_home_env = described_class.java_home_env("1.8+")
|
java_home_env = described_class.java_home_env("1.8+")
|
||||||
expect(java_home_env[:JAVA_HOME]).to eql(f.opt_libexec.to_s)
|
expect(java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns java_home path if version is not specified" do
|
it "returns java_home path if version is not specified" do
|
||||||
java_home_env = described_class.java_home_env
|
java_home_env = described_class.java_home_env
|
||||||
expect(java_home_env[:JAVA_HOME]).to eql(f.opt_libexec.to_s)
|
expect(java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "::overridable_java_home_env" do
|
describe "::overridable_java_home_env" do
|
||||||
it "returns java_home path if version specified" do
|
it "returns java_home path if version specified" do
|
||||||
overridable_java_home_env = described_class.overridable_java_home_env("1.8+")
|
overridable_java_home_env = described_class.overridable_java_home_env("1.8+")
|
||||||
expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{f.opt_libexec}}")
|
expect(overridable_java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns java_home path if version is not specified" do
|
it "returns java_home path if version is not specified" do
|
||||||
overridable_java_home_env = described_class.overridable_java_home_env
|
overridable_java_home_env = described_class.overridable_java_home_env
|
||||||
expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{f.opt_libexec}}")
|
expect(overridable_java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user