Plate-forme:
OSX Mojave
Darwin Kernel Version 18.7.0: Jeu 20 juin 18:42:21 PDT 2019; racine: xnu-4903.270.47 ~ 4 / RELEASE_X86_64
Architecture:
x86_64
Description du problème
Lorsque je tente de charger des bibliothèques natives sur la plate-forme ci-dessus avec l'une des versions 11.0.4, j'obtiens une exception:
/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.
Lors de l'exécution avec 11.0.3, tout fonctionne comme prévu.
Test reproductible
Il y a une application java ici: https://bintray.com/beta/#/adammurdoch/maven/net.rubygrapefruit : native-platform-test / 0.18? Tab = fichiers qui testent divers appels natifs.
Si vous téléchargez le zip et que vous le décompressez, j'obtiens les résultats suivants:
$ 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
Je soupçonne que c'est une seule chose pour OS X, mais je le teste sur ubuntu pour m'assurer
Testé sur Ubuntu, et les deux versions fonctionnent comme prévu ...
Cela semble être juste un problème OS X
Je rencontre également le même problème sur macos avec jdk-11.0.4+11.2
, revenant à jdk-11.0.3+7
fonctionne.
@gdams est probablement lié aux autres problèmes sur
@taubeklavs nous avons un correctif en place pour cela et sommes en train de créer une version jdk-11.0.4+11.3
. Mes excuses pour le derangement
Super merci! 😎👍
Je ne sais pas comment j'ai manqué https://github.com/AdoptOpenJDK/openjdk-build/issues/1206 Désolé à ce sujet 😞
Il ne semble pas que cette version soit encore sortie et que le problème bloquait quelque chose sur lequel je travaille - pour n'importe qui d'autre dans le même bateau, vous devriez pouvoir:
brew cask reinstall https://raw.githubusercontent.com/AdoptOpenJDK/homebrew-openjdk/c017a832eec4f940e11c139b6e7852eeb3b2aad8/Casks/adoptopenjdk11.rb
pour obtenir le adoptopenjdk11
tonneau à lire comme ceci:
$ 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)
Une fois la nouvelle version publiée, un simple brew cask upgrade
devrait la récupérer. :)
Enregistrer un comportement erroné se produit avec
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.2+10)
Je viens de télécharger jdk-12.0.2+10.2
et j'ai exécuté le native-platform-test
. J'ai eu la trace "Bad" rapportée par OP.
Un espoir d'obtenir une version fixe?
Salut, peut le confirmer également sur la version 12.
Je viens de vérifier la dernière version 11.0.5
openjdk version "11.0.5" 15/10/2019
Et tout cela fonctionne sur OS X 😎 🎉
Fermer ce
Merci a tous!
J'ai ce problème avec 14.0.1 et 11.0.7 sur Catalina
@MRigal Comment avez-vous installé le binaire - était-ce un fichier PKG via homebrew?
Les deux versions installées via homebrew. J'ai également ajouté les liens symboliques recommandés
après l'installation.
brew install java
et brew install java11
J'ai toujours ce problème avec adoptopenjdk12 et osx catalina
os: mac osx catalina 10.15.4
jdk: installé via
▶ brew tap adoptopenjdk/openjdk
▶ brew cask install adoptopenjdk --no-quarantine
brew a installé le jdk sous /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 installé via:
▶ 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>
C'est apparemment la valeur par défaut lors de l'initialisation de nouveaux projets xcode et n'a pas été modifiée?!
@ peter-gerhard Il n'y a pas de support d'exécution et de notarisation renforcé sur OpenJDK 12 et il n'y en aura pas parce qu'il a atteint sa fin de vie.
De plus, je ferme ce problème car le PKG de 11.0.7 est entièrement notarié.
@aahlenst J'ai découvert que /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Info.plist n'a pas la signature du bundle.
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>11.0.7</string>
Quelle version est actuellement signée par code car j'ai déjà essayé les versions 11 et 12
8u252.1, 11.0.7 et 14 sont notariés. Cependant, vous avez besoin du PKG.
@aahlenst FYI cela n'a pas été corrigé dans 11.0.7 ni dans 11.0.8, mais il est en effet corrigé dans 11.0.9
Si quelqu'un arrivait à ce fil en essayant de compiler un projet KMM, j'ai pu le réparer en mettant à niveau la version gradle vers 7.0.0-alpha09.
Commentaire le plus utile
@taubeklavs nous avons un correctif en place pour cela et sommes en train de créer une version
jdk-11.0.4+11.3
. Mes excuses pour le derangement