Que faire si vous avez installé Java pour OS X sur macOS

Si vous avez installé JDK6 sur macOS Sierra ou OS X El Capitan à l'aide de Java pour OS X, il était assez difficile de le supprimer proprement, alors prenez note.

environnement

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.12
BuildVersion:	16A323

problème

La question "qu'est-ce qui ne va pas?" Est-ce que vous ne pouvez pas changer les liens symboliques créés lorsque vous installez Java pour OS X (ln -fs, ʻunlink, rm`).

Le lien symbolique en question est ci-dessous.

$ ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
lrwxr-xr-x  1 root  wheel  59  1 27 01:03 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ->  /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

Cela ne disparaît pas facilement. La commande ln semble réussir et ne change pas, et les commandes ʻunlink et rm` renvoient Permission refusée.

Cause

Après enquête, il semble que la cause était que la protection par une fonction appelée SIP (System Integrity Protecton) implémentée après «OS X El Capitan» fonctionnait.

Il y avait des gens qui avaient des problèmes avec la même chose avec stackexchange, donc c'était très utile. => [supprimer-les-fichiers-inutiles-dans-la-bibliothèque-système-pour-mac-os-x](http://apple.stackexchange.com/questions/214538/delete-unnizable-files-in-system-library- pour-mac-os-x)

Solution

Une fois que vous savez cela, ce n'est pas si difficile à gérer plus tard. Suivez les étapes ci-dessous.

  1. Démarrez le redémarrage de votre Mac et maintenez enfoncés ``` + r avant de démarrer.
  2. Confirmez que l'utilitaire macOS démarre.
  3. Dans le menu, ouvrez Utilitaires> Terminal.
  4. Dans un terminal ouvert, tapez «csrutil disable» pour l'exécuter. (Cette commande désactive SIP.)
  5. Après avoir confirmé l'exécution, redémarrez normalement.
  6. Après le redémarrage, ouvrez à nouveau le terminal et «dissociez» le lien symbolique cible ou supprimez le répertoire lié.
  7. Après la suppression, s'il existe un chemin du JDK vers lequel vous souhaitez basculer, ajoutez à nouveau un lien symbolique vers / System / Library / Frameworks / JavaVM.framework / Versions / CurrentJDK.

c'est tout. Après toutes les opérations, il est recommandé de redémarrer l'utilitaire macOS et d'exécuter csrutil enable pour activer SIP au cas où.

Si vous souhaitez installer JDK6

Installons-le avec Homebrew. Vous pouvez installer JDK6 avec la commande suivante.

Cependant, même avec cette méthode, / System / Library / Frameworks / JavaVM.framework / Versions / CurrentJDK peut être écrasé, il peut donc être préférable de se préparer à vérifier le chemin du lien symbolique et à le remplacer. ne pas.

$ brew cask install java6

$ ls /Library/Java/JavaVirtualMachines/
1.6.0.jdk/        jdk1.7.0_79.jdk/  jdk1.8.0_121.jdk/ jdk1.8.0_91.jdk/

$ ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
8 lrwxr-xr-x  1 root  wheel  59  2  4 20:11 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents 

$ sudo unlink \
> /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

$ sudo ln -s \
> /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents \
> /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Recommended Posts

Que faire si vous avez installé Java pour OS X sur macOS
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si TextToSpeech ne fonctionne pas sur Android 11
Que faire si vous créez accidentellement un modèle
Que faire si vous ne pouvez pas exécuter avec la commande "nom du package Java / nom de la classe"
Que faire si vous ne trouvez pas le JDK que vous avez mis dans SDKMAN après la migration de bash vers zsh sous macOS
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire si la commande rails devient inutilisable
[Java] [Spring] Que faire si vous ne pouvez pas utiliser Autowire avec une discordance de type après avoir annoté Spring Security
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si vous vous déconnectez en raison d'une erreur de certificat SSL lors de l'exécution de Jenkins sur votre Mac
[Spring Boot] Que faire si une exception HttpMediaTypeNotAcceptableException se produit sur un point de terminaison pour lequel produit est défini
Que faire quand git status indique Modifications non préparées pour la validation: après git add.
Comment vérifier Java installé sur Mac
Si vous ne pouvez pas installer java sur Catalina
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous ne pouvez pas installer le plug-in à partir d'Eclipse Marketplace
Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)
il ne reste plus d'espace sur l'appareil Que faire en cas d'erreur
Que faire si vous n'aimez pas le code généré par swagger-codegen-cli
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
Que faire si vous avez activé Utiliser le moteur basé sur WSL2 dans Docker Desktop avec une installation WSL2 insuffisante
Comment traduire le message d'erreur en japonais (que faire si vous ne pouvez pas vous connecter pour une raison quelconque)
Que faire lorsque vous pensez que vous ne pouvez pas Groovy-> Java avec IntelliJ IDEA CE
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si vous ne pouvez pas activer la boîte de sélection créée par bootstrap-select
wildflly10 java8 ERROR [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (récupération périodique) IJ000906 Que faire en cas d'erreur
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire si le serveur Tomcat meurt
[Java] (pour MacOS) Méthode de définition du chemin de classe
Que faire si l'archétype mvn: générer échoue
Qu'utilisez-vous lors de la conversion en String?
Que faire si vous changez de version de Java sur Windows 7 et obtenez une erreur: La clé de registre'Software \ JavaSoft \ Java Runtime Environment '\ CurrentVersion' a la valeur '1.8', mais '1.7' est requis.
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Vous n'avez pas besoin d'écrire deux fois lorsque vous créez un triangle rectangle en Java
Que faire si vous ne trouvez pas votre clé API après le déploiement sur Rails Heroku