Встановлено Java 7 на Mac OS X, але термінал все ще використовує версію 6


391

Я встановив JDK 7u7, завантажений з веб-сайту oracle. Але після встановлення термінал все ще показує java версії 6

$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

будь-яка ідея, чому java 7 не відображається?

Відповідь: Добре, проблема вирішена. Ось відповідь: я виявив, що мій термінал має .bash_profile, а домашня змінна java встановлена ​​на 1,6

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

Тож ця лінія викликає проблему щоразу, коли я відкриваю нове вікно терміналу. Просто видаліть цей рядок вирішить проблему. Ви все ще повинні дотримуватися того, що сказав @aleroot, але якщо це не працює для вас, перевірте файл налаштування .bash_profile (або .bashrc), щоб побачити, чи раніше ви експортували будь-яку версію Java.


23
У мене була ця проблема, але я лише оновив JRE, а не JDK. Після оновлення JDK він показав правильну версію.
Пол Мазеррат

Перенести це на інше?
Накілон

14
Просто звернути додаткову увагу на коментар @ Mazzy, це легко зробити помилку. Завантаження JRE v7 призведе до появи версії 7 під час запуску перевірки версій в Інтернеті або при запуску панелі управління Java, але при виклику Java з командного рядка ви будете запускати старішу версію попередньо встановленого JDK. Тому двічі перевірте, щоб переконатися, що ви встановили JDK, а не лише JRE.
Cam Jackson

1
Найкращий спосіб вирішити це - використовувати export JAVA_HOMEпідхід, детально описаний тут, дещо гнучкішим способом.
Бред Паркс

5
Дозвольте наголосити на цьому великими літерами: БУДЬ ЛЮДЕЙ, що висаджуються на цю сторінку, потрібно буде скачати та встановити останній JDK. ПАНЕЛ КОНТРОЛЯ JAVA ТОЛЬКО ОНОВЛЮЄ ДЖЕРЕ.
Вальтер Трос

Відповіді:


64

Тому що вам потрібно ввести в панель налаштувань Java та позначити лише JVM 7 таким чином:

Налаштування Java

Щоб легко та швидко відкрити панель « Налаштування Java » у Mac OS X, ви можете просто зателефонувати прожектором із клавішею +SPACE та ввести System Preferences, що відображатиметься в останньому рядку вікна.


3
так, знайшов. але все ж версія 1.6 в терміналі, чи потрібно мені перезавантажувати щось чи щось
Ян

1
Ця панель більше не існує в 10.8. Альтернативи?
Pepijn

68
@Pepijn Панель - це історія Mac OSX 10.8.2, і в цьому насправді вже немає потреби. Натомість вам потрібно використовувати export JAVA_HOME=`/usr/libexec/java_home -v 1.7`для переходу на останню версію Java 7 JDK від Oracle.
Уве Гюнтер

23
Я думаю, вони в якийсь момент позбулися переваг Java. Прожектор не знайдений у моїй коробці. Біг 10.8.5.
quickshiftin

1
Точне місцезнаходження JAVA_HOME можна знайти в розділі -> системні налаштування -> java. Перейдіть на вкладку «Java». Клацніть перегляд. Змінна Шлях показує ваш JAVA_HOME (плитка / Головна).
агааза

298

Інсталятор Oracle ставить java всередині /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. І це не перезаписується /usr/bin/java. Отже, якщо ви видаєте

whereis java

в терміналі він поверне / usr / bin / java. (що, в свою чергу, вказує на /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/javaверсію Apple 1.6).

Отже, якщо ви хочете використовувати нову версію Java, замініть /usr/bin/javaсимвольне посилання так, щоб воно вказувало /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javaзамість цього:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin

22
Ось команда: sudo ln -s / Бібліотека / Інтернет \ Plug-Ins / JavaAppletPlugin.plugin / Зміст / Головна / bin / java / usr / bin
Binarian

11
Командування Віктора працює. Але ви також можете бути впевнені, що ви видалили існуючу Java-симпосиланняrm /usr/bin/java
Метт Флоренція

7
Поки люди Oracle не вдосконалюють цей процес, ось ЯК
ВІДПОВІСТЬ

61
я отримавrm: /usr/bin/java: Operation not permitted
Адітя

37
Абоexport PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Мік

114

Встановіть JDK 7, і ця проблема вирішиться сама собою.

Не забудьте отримати Java Development Kit (JDK), який включає компілятори та подібні речі, а не просто середовище виконання Java (JRE).


7
встановити повний JDK, не тільки JRE.
BrainO2

5
-1 Це не допомогло. Установка JDK не змінюється /usr/bin/javaі не змінюється JAVA_HOME. Але налаштування JAVA_HOMEдопомогло.
Андрій Немченко

3
Підтверджено ОК на OSX 10.9.4. Він не змінює посилання / usr / bin, він змінює речі під ним. Отже /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
Джо Атцбергер

1
Також працював на JDK 1.8 - (встановіть JDK 1.8 замість JRE 1.8)
Марк Чакерян

Я спробував встановити Java 1.8, але це не спрацювало на El Capitan. Встановлення 1.7 вирішило мої проблеми.
SPRBRN

104

vi ~/.bash_profile

додати

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Це вказує вашій /usr/bin/javaметі посилання використовувати останній пакет Java 7, встановлений у

/Library/Java/JavaVirtualMachines/

Отже, для JDK 1.7.0_17 JAVA_HOMEбуло б:

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

Примітка: Нещодавно в цій області було багато змін, щоб перенести Mac OS X з власних системних пакетів Java Appels в пакети Java на базі Oracle. Вищевказане рішення працює нормально, ніж у Mac OS X 10.8.2


4
+1 для цієї відповіді, яка є правильною, оскільки вона працює у версіях Mac OS до та після видалення "Налаштування Java", а показ параметра "-v" демонструє, як можна використовувати java 6, навіть якщо java 7 встановлюється (що я хочу). Отже, на моєму Mac під управлінням Lion (10.7.5) я використовую ту саму команду з "-v 1.6". Це дуже важливо, тому що мені потрібна Java 6, а Oracle не надає одну для Mac OS - лише Java 7, і це дозволяє мені використовувати встановлений JAva 6, навіть якщо встановлено Java 7.
Ревінь

1
Крім того, щоб зробити його більш гнучким: mikemainguy.blogspot.com/2014/11/…
Mainguy

додаткову інформацію можна знайти тут для цієї дивовижної відповіді!
Бред Паркс

Це працювало для мене в Сьєррі 10.12 після встановлення 1.8 JKD, експорт працював, змінюючи 1,7 на 1,8. Чудова відповідь за допомогою утиліти java_home !!
Скотт Баєрс

56

У моєму випадку проблема полягала в тому, що Oracle встановлював його в інше місце, ніж я звик.

Завантажити з Oracle: http://java.com/en/download/mac_download.jsp?locale=en

  1. Переконайтесь, що він встановлений правильно, заглянувши в System Prefs:

    • Command-Space, щоб відкрити прожектор, введіть "System Preferences" та натисніть клавішу Enter.
    • Клацніть піктограму Java в нижньому рядку. Після того, як відкриється панель управління Java, натисніть на вкладку "Java", "Переглянути ..." і переконайтеся, що ваша установка спрацювала. Ви також можете побачити "Шлях", який ви можете передати в команди нижче, якщо вони відрізняються від моїх.
  2. Переконайтеся, що версія є такою, яку ви очікували (в потрібному випадку перейдіть на сторінку):

    / Бібліотека / Інтернет \ Plug-Ins / JavaAppletPlugin.plugin / Зміст / Головна / Бін / java -версія

  3. Створіть посилання з / usr / bin / java до нової інсталяції

    sudo ln -fs / Бібліотека / Інтернет \ Plug-Ins / JavaAppletPlugin.plugin / Зміст / Головна / bin / java / usr / bin / java

  4. Перевірка вашої версії:

    java -версія


Працював і для мене, я також спробував інше пояснення, але з Maverix немає панелі, де можна вибрати номер версії, а також зміна .bash_profile не працювала. ЗДОРОВИЙ!
Алекс Ціо

Eclipse не бачить 1.7 під компілятором
Laser Hawk

Працювали для мене !. До = 1.6.0_65 і після використання цього рішення = 1.7.0_60 .... дякую! :)
математика

але затемнення дає помилку, як і раніше "спільна бібліотека jvm не містить символу jni_createjavavm" .... :(
математика

1
Дякую за допомогу! Більше нічого не працювало, окрім цього. Запуск Йосеміті
LordZardeck

33

Я зіткнувся з подібною проблемою, коли термінал не оновлював версію java, щоб відповідати версії, встановленої на mac.

Не було жодної проблеми із встановленням змінної середовища JAVA_HOME

Я придумав тимчасове і дещо болісне, але робоче рішення.

У вас .bash_profile додайте рядок:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(Це шлях на моїй машині, але може бути різним на вашому, переконайтеся, що ви отримаєте ваш. Шляхи повинні відповідати / Бібліотека / Java / JavaVirtualMachines /)

біг source ~/.bash_profile

Як я вже згадував, це тимчасове рішення для надання допомоги, оскільки шлях додому в java чітко кодується. Насправді немає способу встановити шлях до отримання останнього, тому що Apple нібито вже робить термінал, і проблема полягає в тому, що змінна середовища java_home Apple не оновлюється.


4
Каталог порожній. $ ls / Бібліотека / Java / JavaVirtualMachines /
Pepijn

1
У вас, ймовірно, є проблема з тим, де ви встановили java 7. Перейдіть на веб-сайт Oracle . Клацніть посилання "Java SE Kit Kit 7u11", прийміть ліцензійну угоду та завантажте "jdk-7u11-macosx-x64.dmg". Використовуйте dmg для встановлення Java 7, і це має помістити її у каталог JavaVirtualMachines.
Дерек

Це одне рішення на Mojave 10.14.1 на початку 2019 року
біт і

27

Починаючи з Ель-Капітана, важко видалити /usr/bin/javaсимпосилання через впровадження нової політики "без корів".

Тому я просто додав шлях до останньої версії Java (в моєму випадку це /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) до файлу PATHв моєму .bashrcфайлі:

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

Щоб перезавантажити .bashrcфайл для поточного сеансу, запустіть source ~/.bashrcв оболонці. Це потрібно робити тільки для сеансів, які були розпочаті до зміни .bashrcфайлу.

Тепер використовується остання версія, коли ви використовуєте javaв оболонці.


1
Це конкретне рішення працювало для мене на моєму mac os x el capitan. Я не обійшов захист, встановлений на el capitan, але встановив java версії 1.8. Експорт JAVA_HOME = / мій конкретний шлях тощо тощо / / не працював (після переходу до налаштувань та розміщення шляху до 1.8). Зверніть увагу, 1.6 все ще встановлено. Мені довелося створити .bashrc файл і встановити шлях, як описано тут. Я побіг java -версія та shazzam! це спрацювало.
umbregachoong

Я так хотів, щоб це працювало, коли я перебуваю на El Capitan і не можу отримати жодного іншого рішення. Я створив файл. Що б я не помітив?
noLongerRandom

@ user3810073 можливо вам потрібно запустити source .bashrc, щоб перезавантажити вміст .bashrc
TabeaKischka

Працювали для мене. Я додав рядок до .bash_profile (у домашній каталог мого користувача), а потім до джерела .bash_profile. Тоді java -версія дала мені останню. Дякую!
mrmuggles

Цього можна також досягти, подумавши /usr/local/binтак: sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java Це припущення /usr/local/binє попереднім /usr/binу вашому, $PATHщо має бути за замовчуванням.
lifeofguenter

21

Для мене найпростіший і найпростіший спосіб - встановити Java за допомогою домашньої мови, як описано тут:

https://stackoverflow.com/a/28635465

brew update
brew cask install java

Просте і чисте рішення !. Працював як шарм.
Рахул Шукла

2
Це єдине рішення, яке оновило і java, і javac. Дякую!
ldanilek

Працював як шарм :) Спасибі велике
Мохамед Салех

це встановить новітню версію Java, а не Java7
Іво,

13

Основне питання: /usr/bin/javaвказує на той, який надає сам OSX спочатку ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java) Нам потрібно вказати на той, який завантажив інсталятор JDK. Нижче описані кроки для OSX 10.10.4 Yosemite.

  • Відкрийте Налаштування системи -> виберіть Java. Відкриється вікно Java.
  • Клацніть на вкладці Java вгорі. Натисніть кнопку "Переглянути".
  • Вкладка Налаштування середовища виконання Java відкриється нижче: Вкладка Налаштування JRE
  • Двічі клацніть на Pathелементі та скопіюйте шлях (cmd + c). Це останнє, встановлене інсталятором / оновленням JDK. У моєму випадку шлях був/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
  • Відкритий термінал. На цьому кроці ми збираємося вказати (символічне посилання, ln -sкоманда) системну двійкову систему Java на останню, яку ми виявили на попередньому кроці. Запустіть команду нижче:

sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java

Це воно. Для перевірки можна просто запуститись java -version на термінал. Він повинен вивести останню версію, до якої ви встановили / оновили.


2
Для мене працює, за винятком того, що мені довелося додати команду -f до ln. В іншому випадку, якщо не вдалося з ln: / usr / bin / java: Файл існує
Дейл

в моєму випадку я б використовував usr/local/binзамість команди usr/binтерміналу
iAkshay

Я отримую "операцію не дозволено".
Шардул

Отримати шлях таким чином ідеально. Потім я зміг експортувати його та перезавантажити bashrc, щоб вирішити проблему з версією. У моєму випадку я переходив з версії 7 на 8 у Mojave 10.14.1
bitsand

12

Ви можете виконати таку команду у своєму терміналі:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

І це замінює стару яву новою.


1
Дивно він замінює, але тоді, якщо я закрию термінал і знову відкрию, він знову показує старішу версію
Parth Patel

це правда. так болісно. дуже тимчасове рішення
Користувач

1
додайте це у файл .bashrc, source ~/.bashrcщоб зробити його постійним
Азімжон Ільхомов

10

я зробив

export JAVA_HOME=`/usr/libexec/java_home`

і це вирішило мою проблему Java 8.

перед:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

після:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

1
Це /usr/libexec/java_homeдуже хороший показник, дякую!
Раффі

1
Зробив роботу для мого, прочитавши тонни можливих рішень! Дякую :)
ronnyrr

7

http://www.java.com/uk/download/faq/java_mac.xml - це приємне місце для розуміння, поки Apple припиняє підтримку Java, чому Java Preferences більше не існує та покладається на System_Preferences => Java = > Java, якщо встановлено Java 7 від Oracle.


2
Це гарна інформація, але ви повинні дійсно надати більше деталей, ніж просто посилання. Якщо посилання буде розірвано в майбутньому, ваша відповідь справді не буде дуже корисною.
psubsee2003

7

Можна запропонувати вам поглянути на інструмент Дженв

Це дозволить вам в будь-який час перемикатися між встановленими JVM.

Просто як:

jenv global oracle-1.7

потім пізніше з метою тестування:

jenv global oracle-1.6

І у вас є набагато більше команд.


+1 для цієї відповіді, оскільки ви можете використовувати домашню мову, якщо ви вже використовуєте її в системі OS X. Набагато чистіше, ніж я кажу. Більше інформації тут: jenv.be
піку

6

Жорстке кодування шляху JAVA_HOME може бути не найкращою ідеєю. /usr/libexec/java_homeУтиліта підвіконня працює для мене на Mac OSX Lion 10.7.5 і JDK 1.7.0_13. Згідно з його довідковою сторінкою, він призначений для використання зі старою панеллю налаштувань Java Java, але, здається, працює з заміною, що надається Oracle (панель управління Java). Наприклад, запущений /usr/libexec/java_home -Vсписок усіх встановлених JDK (1.6. * І 1.7. *) На моїй машині.

Отже, як обговорювалося в інших потоках (наприклад, для чого я повинен встановити JAVA_HOME на OSX ), я все-таки рекомендую додати наступний рядок до вашого .bash_profile:

export JAVA_HOME=$(/usr/libexec/java_home)

Я погодився б із вашим коментарем, оскільки це найкраща практика, але чомусь змінна середовища java_home не встановлена ​​правильно, тому це не працює. Я вважаю, що остання версія оновлення Apple у вашій пропозиції є типовою дією для JAVA_HOME у терміналі та інших пов'язаних програмах за замовчуванням.
Дерек

@Derek Що ви точно маєте на увазі під назвою "змінна середовища java_home не встановлена ​​правильно"? Згідно цієї статті/usr/libexec/java_home утиліта призначена , щоб працювати також з Java 7 версій, і він повертає шлях до самої даті вверх до встановленої JDK. Це прекрасно працює на моїй машині.
zagyi

1
так, це повинно працювати, однак це не для людей з проблемою, про яку згадував pepijin.
Дерек

6

Це горіхи! Як Oracle надає інсталятор, який нічого не встановлює !?

У будь-якому випадку для мене це було:

sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java

де 1.8.0_31 - ваша встановлена ​​версія Java ...


Чому Apple не пропонує належного методу?
jwilleke

6

У випадку, якщо у вас на версії машини кілька версій Java, і ви хочете вибирати її динамічно під час виконання, тобто в моєму випадку у мене є дві версії:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Ви можете змінити їх, змінивши вміст / etc / profile. Просто додайте (або змініть) наступні два рядки в кінці файлу:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

У моєму випадку, якщо я хочу використовувати:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Після збереження файла запустіть source /etc/profile його, і він повинен працювати. Ось результати, коли я відповідно використовую перший та другий варіант:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Процес схожий, якщо папка java розміщена в різних місцях.


5

Просте рішення

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

Дивовижно. Це рішення зробило мій день. Велике спасибі Мік
Користувач

3

Я думаю, ви можете спробувати встановити jdk не jre. Встановивши jdk, java в / usr / bin / java буде замінено, і вся бібліотека буде працювати нормально.


3

Якщо у вас встановлений Homebrew, ви можете встановити java-перемикач, щоб швидше змінити версію Java за замовчуванням

brew tap andycillin/tap
brew install java-switcher

Тоді ви можете використовувати лише одну команду для переключення вашої версії Java за замовчуванням.

java-switcher 1.7

або

java-switcher 10

Дякую Енді, це було легко.
GreenROBO

1

Ви можете запустити цю команду, щоб знайти версію Java, яка знаходиться під / Бібліотека / Інтернет плагіни /:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion

1

Це відбувається тому, що ваш .bash_profile не відображає змін. Щоб відобразити це, просто використовуйте наступну команду

$ source .bash_profile

0

Оскільки я не стикався з цим питанням, я приймаю підказку -

Чи можете ви спробуйте це:

Куди вказує м'яке посилання "java_home":

ls -lrt /usr/libexec/java_home

Вихід: (Stunted) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions Мій MAC виробляє наступне:

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

Виходячи з цього, ми можемо отримати підказку продовжувати далі?


прочитайте деякі коментарі в Інтернеті про проблеми Java 7 з MAC-OSX, і він відображається заблокованим. Зверніться до цього: grep.dk/tag/xprotect-meta-plist . У XProtect.meta.plist у мене перераховані Java 7 та Flash.Until грає в поліцію вразливості
користувач1428716

0

Я вирішив цю проблему, встановивши Yosemite і перехресно перевіривши версію java на терміналах (java -версія) та (javac -версія). Зараз він ідеально працює. Він не змінюється на java 7, як версія 6 все ще присутня на (команда + n ) бібліотека> java> javavirtualmachine> Ваша javac поточна версія. Вам потрібно звернутися до java home.


0

Я вирішив це питання за допомогою sudo rm /usr/bin/java

І я завантажив і встановив останнє середовище виконання Java SE: http://www.oracle.com/technetwork/java/javase/downloads/index.html

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/javaне працював для мене, тому що я потрапив Operation not permitted. Зараз El Capitan захищає певні системні каталоги в режимі "без корінь" (він же захист системної цілісності). Це застосовно до macOS Sierra, і, ймовірно, нових версій macOS в осяжному майбутньому.


0

Встановлення через розподілений JDK DMG з сайту Oracle автоматично оновлює все для мене. Я бачив (в Ель-Капітан) оновлення через оновлення System Preferences > Javado, але це не відображається в командному рядку. Встановлення через DMG робить цю роботу.


0

Перевірте встановлені версії JDK:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

Тепер у вашому ~/.bashrcекспорті JAVA_HOMEвказується версія:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

Джерело файлу bashrc та версія Java буде оновлено:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

0

Останній 100% ефективний метод:


в баші:

vim ~/.bash_profile

додати

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq зберегти
  • cmd + q сила кинути bash
  • знову відкрийте bash і введіть java -version

Але насправді цей шлях вказує на jre не jdk.

Якщо ви хочете вказати шлях до JDK, вам потрібно

  1. Переконайтеся, що ви встановили JDK не один час виконання JRE
  2. замінити попередній шлях на PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", ви можете перейти до того, /Library/Java/JavaVirtualMachinesщоб переконатися, що ви встановили очікувану вами версію JDK.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.