Homebrew / homebrew-cask

🍻 A CLI workflow for the administration of macOS applications distributed as binaries
https://brew.sh
BSD 2-Clause "Simplified" License
20.77k stars 10.64k forks source link

apache-directory-studio won't start with temurin openjdk: libjvm.dylib does not contain the JNI_CreateJavaVM symbol #127475

Closed sdlane-lbl closed 2 years ago

sdlane-lbl commented 2 years ago

Verification

Description of issue

The apache-directory-studio caveats state:

==> Caveats
To set the Java VM to use:

  https://directory.apache.org/studio/faqs.html#how-to-set-the-java-vm-to-use

apache-directory-studio requires Java 11+. You can install the latest version with:
  brew install --cask temurin

I have followed these instructions, installing apache-directory-studio version 2.0.0.v20210717-M17 and temurin version 18.0.1,10, and configuring ApacheDirectoryStudio.ini, but trying to start Apache Directory Studio results in the following error:

The JVM shared library "/Library/Java/JavaVirtualMachines/temurin-18.jdk/Contents/Home/bin/../lib/server/libjvm.dylib" does not contain the JNI_CreateJavaVM symbol.

Based on the error output (below), it looks like it might be an M1 architecture issue.

Any help with this issue, whether something else I can / should do differently, or a fix to the jvm, will be much appreciated.

Command that failed

Attempting to run the GUI macOS application "Apache Directory Studio"

Output of command with --verbose --debug

(Not exactly what you're looking for, but probably as good as it's going to get.)

2022-07-08 22:06:51.172 ApacheDirectoryStudio[7281:6522637] Error loading /Library/Java/JavaVirtualMachines/temurin-18.jdk/Contents/MacOS/libjli.dylib:  dlopen(/Library/Java/JavaVirtualMachines/temurin-18.jdk/Contents/MacOS/libjli.dylib, 0x0109): tried: '/Library/Java/JavaVirtualMachines/temurin-18.jdk/Contents/MacOS/libjli.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

Output of brew doctor --verbose

==> Cask Environment Variables:
BUNDLE_PATH
CHRUBY_VERSION
GEM_HOME
GEM_PATH
HOMEBREW_CASK_OPTS
LC_ALL
PATH
RBENV_VERSION
RUBYLIB
RUBYOPT
RUBYPATH
SHELL
==> $LOAD_PATHS
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/warning-1.2.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/tapioca-0.7.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/yard-sorbet-0.6.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/yard-0.9.28/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/spoom-1.1.11/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/thor-1.2.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/sorbet-static-and-runtime-0.5.10145/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/sorbet-runtime-stub-0.2.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/sorbet-0.5.10145/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/sorbet-static-0.5.10145-universal-darwin-15/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov-cobertura-2.1.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov-0.21.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov_json_formatter-0.1.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov-html-0.12.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ruby-macho-3.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-sorbet-0.6.11/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-rspec-2.12.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-rails-2.15.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-performance-1.14.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-1.31.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unicode-display_width-2.2.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ruby-progressbar-1.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-ast-1.18.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec_junit_formatter-0.5.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-wait-0.0.9/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-sorbet-1.8.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-retry-0.6.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-its-1.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-github-2.3.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-3.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-mocks-3.11.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-expectations-3.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-core-3.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-support-3.11.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ronn-0.7.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rexml-3.2.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rdiscount-2.2.0.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/rdiscount-2.2.0.2
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rbi-0.0.14/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unparser-0.6.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rack-2.2.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/pry-0.14.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/plist-3.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/patchelf-1.3.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parlour-8.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/sorbet-runtime-0.5.10145/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rainbow-3.1.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parser-3.1.2.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parallel_tests-3.11.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parallel-1.22.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mustache-1.1.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/method_source-1.0.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mechanize-2.8.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/webrobots-0.1.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/webrick-1.7.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubyntlm-0.6.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/nokogiri-1.13.6-x86_64-darwin/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/racc-1.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/racc-1.6.0
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mini_portile2-2.8.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/net-http-persistent-4.0.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/net-http-digest_auth-1.4.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mime-types-3.4.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mime-types-data-3.2022.0105/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/json_schemer-0.2.21/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/uri_template-0.7.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/json-2.6.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/json-2.6.2
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/http-cookie-1.0.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/hpricot-0.8.6/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/hpricot-0.8.6
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/hana-1.3.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/elftools-1.1.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ecma-re-validator-0.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/regexp_parser-2.5.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/domain_name-0.5.20190701/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unf-0.1.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unf_ext-0.0.8.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/unf_ext-0.0.8.2
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/docile-1.4.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/diff-lcs-1.5.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/did_you_mean-1.6.1/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/connection_pool-2.2.5/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/commander-4.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/highline-2.0.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/coderay-1.1.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/byebug-11.1.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/byebug-11.1.3
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/bootsnap-1.12.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/bootsnap-1.12.0
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/msgpack-1.5.3/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/x86_64-darwin-15/2.6.0-static/msgpack-1.5.3
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/bindata-2.4.10/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ast-2.4.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/addressable-2.8.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/public_suffix-4.0.7/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/activesupport-6.1.6/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/zeitwerk-2.6.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/tzinfo-2.0.4/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/minitest-5.16.2/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/i18n-1.10.0/lib
/opt/homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby
/Library/Ruby/Gems/2.6.0/gems/did_you_mean-1.3.0/lib
/Library/Ruby/Site/2.6.0
/Library/Ruby/Site/2.6.0/arm64e-darwin21
/Library/Ruby/Site/2.6.0/universal-darwin21
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0/arm64e-darwin21
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0/universal-darwin21
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/arm64e-darwin21
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin21
/opt/homebrew/Library/Homebrew
==> Homebrew Version
3.5.4-32-g8dd96ae
==> macOS
12.4
==> SIP
Enabled
==> Homebrew Cask Staging Location
/opt/homebrew/Caskroom
==> Homebrew Cask Taps:
/opt/homebrew/Library/Taps/homebrew/homebrew-cask (4032 casks)
Your system is ready to brew.

Output of brew tap

homebrew/cask
homebrew/core
miccal commented 2 years ago

Ping @gdams for any insight.

carlocab commented 2 years ago

Does it fail only with temurin? What about the openjdk or openjdk@11 formulae? Or the temurin11 cask?

cho-m commented 2 years ago

If I had to guess, it may be from running x86_64 apache-directory-studio in combination with arm64 temurin.

Since there isn't an Apple Silicon build of apache-directory-studio yet, you may want to try installing an x86_64 Java to see if it helps.


There is also an upstream issue: https://issues.apache.org/jira/browse/DIRSTUDIO-1293

sdlane-lbl commented 2 years ago

Thanks for that suggestion. Is there one available from homebrew? I've looked (a little...) and haven't found anything obviously specifically x86_64, so if there's something I'm missing, please let me know.

Otherwise, I'll just install it from the openjdk folks.

Best,

Steve Lane

On Wed, Jul 20, 2022 at 9:05 PM Michael Cho @.***> wrote:

If I had to guess, it may be from running x86_64 apache-directory-studio in combination with arm64 temurin.

Since there isn't an Apple Silicon build of apache-directory-studio yet, you may want to try installing an x86_64 Java to see if it helps.

There is also an upstream issue: https://issues.apache.org/jira/browse/DIRSTUDIO-1293

— Reply to this email directly, view it on GitHub https://github.com/Homebrew/homebrew-cask/issues/127475#issuecomment-1191013505, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANUC4U5W4XPBSLLIT7U3KHTVVDD6XANCNFSM53CZQGBQ . You are receiving this because you authored the thread.Message ID: @.***>

cho-m commented 2 years ago

Homebrew tries to only provide native binaries whenever possible. There are some ways of using Rosetta to install x86_64 binaries.

One common approach is to have a dedicate Rosetta Homebrew installation. This would use the traditional /usr/local while native installation would use /opt/homebrew.

For at least temporary usage/testing, you might be able to install using Rosetta in same Homebrew instance (via arch -x86_64 brew install ...), but this may break on next brew upgrade. Not too sure since I haven't used this approach.

sdlane-lbl commented 2 years ago

Ok, I'll look into that.

Thanks much.

Steve Lane

On Thu, Jul 21, 2022 at 2:56 PM Michael Cho @.***> wrote:

Homebrew tries to only provide native binaries whenever possible.

One common approach is to have a dedicate Rosetta Homebrew installation.

For at least temporary usage/testing, you might be able to install using Rosetta in same Homebrew instance (via arch -x86_64 brew install ...), but this may break on next brew upgrade. Not too sure since I haven't used this approach.

— Reply to this email directly, view it on GitHub https://github.com/Homebrew/homebrew-cask/issues/127475#issuecomment-1191974663, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANUC4U36LZWXPSLAQTSBK7LVVHBSFANCNFSM53CZQGBQ . You are receiving this because you authored the thread.Message ID: @.***>

github-actions[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.