Платформа:
OSX Mojave
Версия ядра Дарвина 18.7.0: четверг, 20 июня, 18:42:21 PDT 2019; корень: xnu-4903.270.47 ~ 4 / RELEASE_X86_64
Архитектура:
x86_64
Описание проблемы
При попытке загрузить собственные библиотеки на указанную выше платформу с любой из сборок 11.0.4 я получаю исключение:
/private/var/folders/f6/c8gfypz56c5d9b66l6_1n30m0000gn/T/native-platform4313193693498570932dir/libnative-platform.dylib: code signature in (/private/var/folders/f6/c8gfypz56c5d9b66l6_1n30m0000gn/T/native-platform4313193693498570932dir/libnative-platform.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
При запуске с 11.0.3 все работает как положено.
Воспроизводимый тест
Здесь есть приложение java: https://bintray.com/beta/#/adammurdoch/maven/net.rubygrapefruit : native-platform-test / 0.18? Tab = files, которое проверяет различные собственные вызовы.
Если вы загрузите zip-архив и распакуйте его, я получу следующие результаты:
$ bin/native-platform-test
Select test to run:
1) Show terminal details
2) Show machine details
3) Show file systems
4) Test input handling
5) Example prompts
> 6) Exit
Use the arrow keys to select an option and press enter
$ bin/native-platform-test
Exception in thread "main" net.rubygrapefruit.platform.NativeIntegrationLinkageException: Native library 'libnative-platform.dylib' could not be loaded for Mac OS X x86_64.
at net.rubygrapefruit.platform.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:61)
at net.rubygrapefruit.platform.Native.init(Native.java:55)
at net.rubygrapefruit.platform.Native.get(Native.java:80)
at net.rubygrapefruit.platform.test.Main.terminals(Main.java:286)
at net.rubygrapefruit.platform.test.Main.main(Main.java:109)
Caused by: java.lang.UnsatisfiedLinkError: /private/var/folders/f6/c8gfypz56c5d9b66l6_1n30m0000gn/T/native-platform4313193693498570932dir/libnative-platform.dylib: dlopen(/private/var/folders/f6/c8gfypz56c5d9b66l6_1n30m0000gn/T/native-platform4313193693498570932dir/libnative-platform.dylib, 1): no suitable image found. Did find:
/private/var/folders/f6/c8gfypz56c5d9b66l6_1n30m0000gn/T/native-platform4313193693498570932dir/libnative-platform.dylib: code signature in (/private/var/folders/f6/c8gfypz56c5d9b66l6_1n30m0000gn/T/native-platform4313193693498570932dir/libnative-platform.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
at java.base/java.lang.Runtime.load0(Runtime.java:767)
at java.base/java.lang.System.load(System.java:1831)
at net.rubygrapefruit.platform.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:51)
... 4 more
Я подозреваю, что это только OS X, но я тестирую его на Ubuntu, чтобы убедиться, что
Протестировано на Ubuntu, обе версии работают как положено ...
Кажется, это просто проблема OS X
Я также испытываю ту же проблему на macos с jdk-11.0.4+11.2
, возврат к jdk-11.0.3+7
работает.
@gdams, вероятно, связан с другими проблемами, над которыми вы работаете ...
@taubeklavs у нас есть исправление для этого, и мы создаем релиз jdk-11.0.4+11.3
. Приносим извинения за неудобства
Огромное спасибо! 😎👍
Не уверен, как я пропустил https://github.com/AdoptOpenJDK/openjdk-build/issues/1206 Извините за это 😞
Не похоже, что эта сборка еще выпущена, и проблема заключалась в блокировке того, над чем я работаю - для всех, кто находится в той же лодке, вы должны иметь возможность:
brew cask reinstall https://raw.githubusercontent.com/AdoptOpenJDK/homebrew-openjdk/c017a832eec4f940e11c139b6e7852eeb3b2aad8/Casks/adoptopenjdk11.rb
чтобы содержимое бочки adoptopenjdk11
читалось так:
$ brew cask info adoptopenjdk11
adoptopenjdk11: 11,0.3:7
https://adoptopenjdk.net/
/usr/local/Caskroom/adoptopenjdk11/11,0.3:7 (181.4MB)
From: https://github.com/adoptopenjdk/homebrew-openjdk/blob/master/Casks/adoptopenjdk11.rb
==> Name
AdoptOpenJDK 11
==> Artifacts
OpenJDK11U-jdk_x64_mac_hotspot_11.0.3_7.pkg (Pkg)
Как только новая сборка будет опубликована, ее должен забрать простой brew cask upgrade
. :)
Сохранение ошибочного поведения происходит с
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.2+10)
Я только что загрузил jdk-12.0.2+10.2
и запустил native-platform-test
. Я получил "Плохой" след, сообщенный OP.
Есть надежда получить исправленную сборку?
Привет, могу подтвердить это также на версии 12.
Только что проверил последнюю 11.0.5
openjdk версия "11.0.5" 2019-10-15
И все это работает на OS X 😎 🎉
Закрытие этого
Спасибо всем!
У меня такая проблема с 14.0.1 и 11.0.7 на Каталине
@MRigal Как вы установили двоичный файл - был ли это файл PKG через homebrew?
Обе версии устанавливались через homebrew. Я также добавил рекомендуемые символические ссылки
после установки.
brew install java
и brew install java11
У меня все еще проблема с accepttopenjdk12 и osx catalina
ОС: Mac OSX Catalina 10.15.4
jdk: устанавливается через
▶ brew tap adoptopenjdk/openjdk
▶ brew cask install adoptopenjdk --no-quarantine
brew установил jdk под /Library/Java/JavaVirtualMachines/
▶ java --version
openjdk 12.0.2 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.2+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 12.0.2+10, mixed mode)
sbt установлен через:
▶ brew install sbt
▶ sbt sbtVersion
[info] 1.3.10
md5-81688d6fdae4a4fb6cbfecc5b8fbee61
▶ sudo spctl --master-disable
▶ spctl --status
assessments disabled
# starting sbt will produce the same output (code signature in [...] not valid for use in process using Library Validation: mapped file has no cdhash)
▶ sudo spctl --master-enable
▶ spctl --status
assessments enabled
md5-046c5f6222d4ced024068ca879544f9b
▶ codesign -dv --verbose=4 ~/Library/Caches/JNA/temp/jna123.tmp
~/Library/Caches/JNA/temp/jna123.tmp: code object is not signed at all
md5-99fc43abd604e2213e80c0369e20444a
<key>CFBundleSignature</key>
<string>????</string>
По-видимому, это значение по умолчанию при инициализации новых проектов xcode и не было изменено ?!
@ peter-gerhard В OpenJDK 12 нет усиленной среды выполнения и поддержки нотариального заверения, и ее не будет, потому что она достигла своего EOL.
Более того, я закрываю этот вопрос, потому что PKG 11.0.7 полностью нотариально заверен.
@aahlenst Я обнаружил, что /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Info.plist не имеет подписи пакета.
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>11.0.7</string>
Какая версия в настоящее время подписана кодом, поскольку я уже пробовал версии 11 и 12
8u252.1, 11.0.7 и 14 нотариально удостоверены. Однако вам понадобится PKG.
@aahlenst К вашему сведению: это не было исправлено ни в 11.0.7, ни в 11.0.8, но действительно исправлено в 11.0.9
Если кто-то попал в эту ветку из-за попытки скомпилировать проект KMM, я смог исправить это, обновив версию gradle до 7.0.0-alpha09.
Самый полезный комментарий
@taubeklavs у нас есть исправление для этого, и мы создаем релиз
jdk-11.0.4+11.3
. Приносим извинения за неудобства