Як я можу змінити стандартну версію Java VM для Mac OS, повернуту з / usr / libexec / java_home


108

(Не був впевнений, чи варто це продовжувати на SU ... міграція, безумовно, є варіантом, але більше програмістів читають питання тут, і ось тут йде).

У мене працює Mac OS X 10.8.4, і в мене встановлений JDK 1.6.0_51 Apple, а також JDK 1.7.0_25 Oracle. Нещодавно я встановив JDK для попереднього випуску програми Oracle 1.8 для деяких програм перед випуском, які потребують цього. Тепер, коли я запускаю / usr / libexec / java_home, я отримую це:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    1.7.0_25, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
    1.6.0_51-b11-457, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Чудово.

Однак працює:

$ java -version

Повернення:

java version "1.8.0-ea"

Це означає, що версією Java за замовчуванням на даний момент є версія до випуску, яка розбиває деякі "звичайні" пакети (у моєму випадку VisualVM).

Я не можу встановити, JAVA_HOMEоскільки запуск програм ігнорує змінні середовища, навіть при запуску з командного рядка (наприклад $ open /Applications/VisualVM.app).

Отже, чи є файл, який я можу редагувати, де я можу встановити свої параметри впорядкування JVM у всьому світі ?

(Будь ласка, не кажіть мені запускати панель налаштувань Java, тому що це просто не працює: вона не містить нічого корисного і містить лише один із 4 встановлених мною JVM.)

Оновлення :

Проживають у співавторах Oracle /Library/Java/JavaVirtualMachines. Перейменування каталогу JDK 1.8 jdk1.8.0.jvm.xyzнічого не змінює: java_homeвсе-таки знаходить його в потрібному місці, а запуск / usr / bin / java все ще виконує 1,8 JVM. Це не проблема із синхроніками тощо.

Відповіді на подібні запитання

Хоча ця відповідь пропонує те, що означає хак, який видалить версії Java з вибору ява_home, він все ще не відповідає на це питання про те, як java_home вибирає його за замовчуванням та чи можуть користувачі неруйнівно його встановити .


Введіть "котра ява" та слідуйте за сухарями. /usr/bin/java- це просто посилання
Брайан Роуч

11
Був там зробив те. /usr/bin/javaвказує на /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java. VersionsКаталог не містить символьне посилання на 1.8.0 JDK. Натомість він містить каталог, який корисно називається, на Aякий Currentвказує. Aце не "JAVA_HOME. Він має підкаталог, Commandsякий називається, який має javaкоманду, але це непрозорий універсальний двійковий код, який робить, хто-що знає. Я підозрюю, що він використовує java_homeі т.д., щоб вирішити, який JVM використовувати.
Крістофер Шульц,

2
Якщо це поза темою, будь ласка, перемістіть замість закриття. FWIW, йдеться про "програмні засоби, які зазвичай використовуються програмістами", тому закриття "поза темою" є неохайним.
Крістофер Шульц

Так, це засмучує! Я просто хочу один JDK для всіх, або, можливо, 2, що я можу легко перемикатися між 1.7 і 1.8.
Брайан

1
Я знайшов , що це ТАК відповісти корисно на це питання: stackoverflow.com/a/44169445/2987755
ДКБ

Відповіді:


89

Я думаю, що JAVA_HOMEце найкраще, що ти можеш зробити. Інструменти командного рядка люблять javaта javacбудуть дотримуватися цієї змінної середовища, ви можете використовувати /usr/libexec/java_home -v '1.7*'для надання відповідного значення для використання JAVA_HOMEдля того, щоб інструменти командного рядка використовували Java 7.

export JAVA_HOME="`/usr/libexec/java_home -v '1.7*'`"

Але стандартні пакети програм із подвійним клацанням взагалі не використовують JDK, встановлені під /Library/Java. Пакети старого стилю, що .appвикористовують Apple, JavaApplicationStubвикористовуватимуть Apple Java 6 від /System/Library/Frameworks, а нові, побудовані за допомогою AppBundler без пакетного JRE, використовуватимуть "public" JRE у /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home- це жорстко закодовано в коді заглушки і його неможливо змінити, і у вас не може бути встановлено два різні публічні JRE одночасно.


Редагувати: Я спеціально розглядав VisualVM, припускаючи, що ви використовуєте версію "пакет додатків" зі сторінки завантаження , і це конкретне додаток не є додатком AppBundler, натомість головним його виконуваним файлом є скрипт оболонки, який викликає номер інших скриптів оболонки та читає різні файли конфігурації. Він за замовчуванням /Library/Javaвибирає найновіший JDK з тих пір, як це 7u10 або пізнішої версії, або використовує Java 6, якщо ваша установка Java 7 оновлена ​​9 або раніше. Але розгадуючи логіку в скриптах оболонки, мені здається, ви можете вказати певний JDK, використовуючи файл конфігурації.

Створіть текстовий файл ~/Library/Application Support/VisualVM/1.3.6/etc/visualvm.conf(замініть 1.3.6 будь-якою версією VisualVM, яку ви використовуєте), що містить рядок

visualvm_jdkhome="`/usr/libexec/java_home -v '1.7*'`"

і це змусить його вибрати Java 7 замість 8.


Схоже, це не так у моїй системі. Запуск VisualVM до встановлення JDK 1.8 працював. Після JDK1.8 VisualVM показує екран сплеску, після чого помирає. Виведення каталогу JDK1.8 з / Бібліотека / Java відновлює його здатність працювати.
Крістофер Шульц

@ChristopherSchultz Я подивився всередині пакета VisualVM, і виявилося, що це не звичайна програма appbundler. Дивіться мою редакцію щодо можливого вирішення.
Ian Roberts

Вибачте, я написав попередній коментар перед вашою редагуванням. Я перевіряю, як запустити VisualVM за допомогою цієї методики, але це навряд чи буде загальноприйнятним. У мене є маса іншого програмного забезпечення на базі Java, яке я запускаю так само, як Eclipse, JasperReports iReport тощо, на які, швидше за все, це вплине. Я думаю, що я краще просто перенесу каталог JDK1.8 кудись інше і використовувати це явно з JAVA_HOME протягом (декількох) разів, що мені насправді це потрібно.
Крістофер Шульц

1
Так, ти маєш рацію JAVA_HOME- це шлях, і в цілому найкращим є те, щоб вказати незначну версію, яка потрібна в інших випадках. Виходячи з розбирання, виявляється, ви можете export JAVA_VERSION=1.7зробити java_homeза замовчуванням показ JKD7 замість JDK8, але він порушується, java_home -v 1.6тому що java-homeтрактує його як додаткове обмеження і відмовляється через взаємно незадовільні обмеження, тоді просто йде з 1,8 за замовчуванням навіть з --failfastопцією.
andrewdotn

2
Я не можу зрозуміти, чому в системних налаштуваннях Java Control Panel не просто представлений список для вибору, а не доведеться вдаватися до скриптів / команд оболонок. Я підозрюю, що це лише для аплетів, які працюють у браузері ...
JGFMK

51

Я теж був там і шукав всюди, як це /usr/libexec/java_homeпрацює, але я не міг знайти жодної інформації про те, як він визначає наявні у ньому віртуальні машини Java.

Я трохи експериментував, і я думаю, що він просто виконує, ls /Library/Java/JavaVirtualMachinesа потім перевіряє ./<version>/Contents/Info.plistвсі умови виконання, які він там знайде.

Потім вони сортують їх за спаданням за ключем, що JVMVersionміститься в Info.plist, і за замовчуванням використовує перший запис як JVM за замовчуванням.

Я думаю, що єдине, що ми можемо зробити, - це змінити список: sudo vi /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Info.plistа потім змінити JVMVersion 1.8.0на щось інше, що змушує його сортувати до низу замість верху, як !1.8.0.

Щось на зразок:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    ...
    <dict>
            ...
            <key>JVMVersion</key>
            <string>!1.8.0</string>   <!-- changed from '1.8.0' to '!1.8.0' -->`

і тоді він магічно зникає з верхньої частини списку:

/usr/libexec/java_home -verbose
Matching Java Virtual Machines (3):
    1.7.0_45, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
    1.7.0_09, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home
    !1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home

Тепер вам потрібно буде вийти / увійти, а потім:

java -version
java version "1.7.0_45"

:-)

Звичайно, я не маю уявлення, якщо щось інше зламається зараз чи версія Java-версії 1.8.0 все ще працює правильно.

Ви, ймовірно, не повинні нічого цього робити, а натомість просто деінсталювати 1.8.0.

Однак поки що це працювало на мене.


Це працювало для мене. Мені довелося скористатися цим налаштуванням, щоб плагін Idea Sbt працював для мене на MacOS. Я згадую про це у своєму блозі agilebuild.blogspot.com/2014/02/…
antoine

Це працює, але це здається трохи складним і може не виглядати як стандартна операційна процедура. Я блукаю, якщо є кращий підхід.
Вейбо Лі

Я все ще хотів би вирішити це, але для встановлення JDK для Intellij для використання я додав це до свого zshenv: export IDEA_JDK = /usr/libexec/java_home -v 1.7. Я думаю, що я зроблю те ж саме для JAVA_HOME ...
Девід Реснік

Я вдається використовувати цю відповідь, щоб уникнути використання Java 9 для запуску програм із подвійним клацанням (через проблему в провіднику Keystore Store). Дякую!
Ніколя Генно

2
Витяг із встановлення JDK та JRE на macOS : Після встановлення Java для macOS 2012-006 /usr/bin/javaзнайде найновіший встановлений JDK та використовуватиме його для всіх інструментів командного рядка, пов’язаних з Java /usr/bin.
Джеремі Као

7

Насправді це досить просто. Скажімо, у нас це є в папці JavaVirtualMachines:

  • jdk1.7.0_51.jdk
  • jdk1.8.0.jdk

Уявіть, що 1,8 є нашим за замовчуванням, тоді ми просто додаємо нову папку (наприклад, "стару") і переміщуємо папку jdk за замовчуванням у цю нову папку. Є java -versionще раз і вуаля, 1.7!


1
Неймовірно, але це спрацювало ... Дякую Mac OS Mojave
Michał Dobi

5

Це досить просто, якщо ви не заперечуєте закручувати рукави ... / Бібліотека / Java / Головна є типовим для JAVA_HOME, і це лише посилання, яке вказує на одне з:

  • /System/Library/Java/JavaVirtualMachines/1.?.?.jdk/Contents/Home
  • /Library/Java/JavaVirtualMachines/jdk1.?.?_??.jdk/Contents/Home

Тому я хотів змінити мою версію JVM / JDK за замовчуванням без зміни вмісту JAVA_HOME ... / Бібліотека / Java / Головна - це стандартне місце для поточного JVM / JDK, і саме це я хотів зберегти ... мені здається бути найпростішим способом змінити речі з найменшими побічними ефектами.

Це насправді дуже просто. Для того, щоб змінити версію Java, яку ви бачите з java -version, все, що вам потрібно зробити, це певна версія цього:

cd /Library/Java
sudo rm Home
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home ./Home

Я не зайняв час, але дуже простий скрипт оболонки, який використовує / usr / libexec / java_home і ln, щоб повторно вказати вищезгадану символьну посилання, повинен бути дурним простим у створенні ...

Після того, як ви змінили, де вказано / Бібліотека / Java / Головна ..., ви отримаєте правильний результат:

cerebro:~ magneto$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM)
64-Bit Server VM (build 25.60-b23, mixed mode)

1
Це не так, як працює цей матеріал: /Library/Java/Homeце справді символьне посилання, але воно вказує на те, /System/Library/Frameworks/JavaVM.framework/Homeщо саме по собі перебуває у великому спалаху символьних посилань, що нарешті змушує вас до ... магічної команди, яка визначає правильність запуску JRE. Зауважте, що /usr/libexec/java_homeтакож посилання на цю магію. Отже, ви можете перервати все, просто замінивши посилання і вказуючи на один JRE, але вам доведеться щоразу оновлювати це. Очевидно, немає жодної команди на зразок set_preferred_jvm_versionчи чогось подібного.
Крістофер Шульц

1
Перевага цієї техніки, однак, полягає в тому, що вона не вимагає того, щоб ви JAVA_HOMEніде встановлювали . Я пограю з цією методикою, щоб побачити, чи призведе це до запуску програм на базі Java з "бажаною" Java VM. Я підозрюю, що це буде, але це досить крихко.
Крістофер Шульц

Що ж, я просто маю це .bash_profile:export JAVA_HOME=`/usr/libexec/java_home -v 12`
jrypkahauer

Це не працює для подвійного клацання на піктограмі, що було цілком суттєвим. Рішення, які працюють лише з командного рядка, це ... не рішення.
Крістофер Шульц

3

Інструкції з видалення Oracle для Java 7 працювали на мене.

Витяг:

Видалення JDK Щоб видалити JDK, ви повинні мати права адміністратора та виконати команду delete як root, або за допомогою інструменту sudo (8).

Перейдіть до / Бібліотека / Java / JavaVirtualMachines та видаліть каталог, ім'я якого відповідає наступному формату: *

/Library/Java/JavaVirtualMachines/jdk<major>.<minor>.<macro[_update]>.jdk

Наприклад, для видалення 7u6:

% rm -rf jdk1.7.0_06.jdk


2
Це питання стосувалося невстановлення ... а про вибір "первинного" JVM з тих, хто встановив ...
Крістофер Шульц

3

Трохи запізнюємось, але оскільки це тривала проблема з Mac OSX ...

Найпростіше рішення, яке я знайшов, було просто видалити речі OpenJDK, які встановлює Apple. Кожен раз, коли надходить оновлення Mac OSX, воно встановлюється, і вам потрібно буде видалити його знову.

Це дуже добре працює, якщо ви розробляєте додатки для Google App Engine на своєму mac за допомогою Java. OpenJDK не працює належним чином, а версія Java, яка постачається з оновленням Mac OSX Yosemite, призведе до краху модуля Eclipse для App Engine при кожному розгортанні з корисною помилкою: "Читання вимкнено".


1
Смішно ... Я думав, що в цей момент Apple повністю видалила Java. Я не пам’ятаю, щоб вручну видаляти Java 1.6 JVM від Apple, і цього вже точно немає. У будь-якому випадку це насправді не виправляє початкову проблему, яка повинна була вказати бажаний JVM з урахуванням вибору, який було встановлено.
Крістофер Шульц

Ви праві. Це не відповідає на питання. Це відповідає на це: Якщо ви видалите використовуваний JVM, використовується "наступний" у списку. Можливо, це допомагає.
Mo'in Creemers

це пояснює, чому після запуску програми jdk 8 вона не відображається у папці JavaVirtualMachines? Я бачу лише "1.6.0.jdk", незалежно від того, яку версію я встановлюю.
whyoz

@whyoz Щойно встановлено jdk-8u31-macosx-x64 на OSX 10.10.2, а VM було встановлено у папку JavaVirtualMachines як очікувалося.
Mo'in Creemers

Ви використовуєте Паралелі випадково? Я встановив його на стороні Windows Parallels і 8u31, встановлений так, як очікувалося .. просто не на стороні Mac ..
whyoz

3

Я тестував "jenv" та інші речі, такі як встановлення "JAVA_HOME" без успіху. Тепер я і закінчую наступним рішенням

function setJava {
    export JAVA_HOME="$(/usr/libexec/java_home -v $1)"
    launchctl setenv JAVA_HOME $JAVA_HOME
    sudo ln -nsf "$(dirname ${JAVA_HOME})/MacOS" /Library/Java/MacOS 
    java -version
}

(додано до ~ / .bashrc або ~ / .bash.profile або ~ / .zshrc)

І дзвонити так:

setJava 1.8

java_home буде обробляти неправильний ввід. тож ви не можете зробити щось не так. Maven та інші речі зараз підберу правильну версію.


1

Я насправді трохи роздивився це в розбиральнику, оскільки джерело недоступне.

/ usr / bin / java та / usr / libexec / java_home обидва використовують JavaLaunching.framework. Змінна середовища JAVA_HOME дійсно спочатку перевіряється / usr / bin / java та друзями (але не / usr / libexec / java_home.) Рамка використовує змінні середовища JAVA_VERSION та JAVA_ARCH для фільтрації доступних JVM. Отже, за замовчуванням:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    11.0.5, x86_64: "Amazon Corretto 11"    /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
    1.8.0_232, x86_64:  "Amazon Corretto 8" /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home

Але якщо, скажімо, JAVA_VERSION може замінити типовий:

$ JAVA_VERSION=1.8 /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home

Ви також можете встановити JAVA_LAUNCHER_VERBOSE = 1, щоб побачити деякі додаткові журнали налагодження до шляхів пошуку, знайдених JVM тощо тощо, використовуючи / usr / bin / java та / usr / libexec / java_home.

Раніше JavaLaunching.framework фактично використовував систему уподобань (під доменом com.apple.java.JavaPreferences) для встановлення бажаного порядку JVM, дозволяючи встановлювати JVM за замовчуванням за допомогою PlistBuddy - але якнайкраще я можу сказати, що код видалено в останніх версіях macOS. Змінні середовища є єдиним способом (окрім редагування Info.plist у самих пакетах JDK.)

Налаштування змінних середовища за замовчуванням, звичайно, можна здійснити через ваш .profile або через запуск , якщо вам потрібно, вони будуть встановлені на рівні сеансу.


Це чудова інформація, Ден. Використання .profileне корисно для мого використання (запуск програми, наприклад, із панелі запуску), але підказка launchdє гарною. Мені доведеться спробувати це, оскільки нещодавнє безумство версії Java означає, що в мене одночасно встановлено кілька поколінь Java з різним рівнем (особистої) довіри.
Крістофер Шульц

-2

Редагувати: ця інформація призначена саме для visualvm, а не для будь-якого іншого додатка Java

Як згадують інші, вам потрібно змінити visualvm.conf

Для останньої версії JvisualVM 1.3.6 на Mac, каталоги встановлення змінилися.

Наразі він знаходиться в /Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf .

Однак це може залежати від того, де ви встановили VisualVM. Найпростіший спосіб знайти, де ваш VisualVM - це запустити його, а потім переглянути процес, використовуючи:

пс -еф | grep VisualVM

Ви побачите щось на кшталт:

... -Dnetbeans.dirs = / Програми / VisualVM.app / Зміст / Ресурси / visualvm / visualvm ...

Ви хочете взяти властивість netbeans.dir і знайти каталог, і ви знайдете папку тощо.

Відкоментуйте цей рядок у visualvm.conf та змініть шлях до jdk

visualvm_jdkhome="/path/to/jdk"

Крім того, якщо у вас спостерігається сповільнення роботи з VisualVm і у вас багато пам’яті, я б запропонував значно збільшити обсяг пам’яті, що доступний, і запустити його в серверному режимі:

visualvm_default_options="-J-XX:MaxPermSize=96m -J-Xmx2048m -J-Xms2048m -J-server -J-XX:+UseCompressedOops -J-XX:+UseConcMarkSweepGC -J-XX:+UseParNewGC -J-XX:NewRatio=2 -J-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.d3d=false"

Погана порада: зміна сценарію запуску для певної програми, ймовірно, порушить програму і не вирішить початкову проблему зміни JVM за замовчуванням для ОС.
Крістофер Шульц

На жаль, як згадують інші, jvisualvm не використовує стандартних методів вибору jvm. Це єдине рішення для цього додатка.
Celandro

Як я заявляю у своїй відповіді, вам не потрібно нічого змінювати всередині пакета додатків, програма може завантажувати його конфігурацію ~/Library/Application Support/VisualVM/1.3.6/etc/visualvm.conf.
Ян Робертс

-2

У мене була схожа ситуація, і для мене спрацював наступний процес:

  1. У терміналі введіть

    vi ~/.profile
  2. Потім додайте цей рядок у файл та збережіть

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home

    де версія на вашому комп’ютері, наприклад 1.7.0_25

  3. Вийдіть із редактора, а потім введіть наступну команду, щоб вона стала ефективною

    source ~/.profile 

Потім введіть java -version, щоб перевірити результат

    java -version 

Що таке .profile? Від: http://computers.tutsplus.com/tutorials/speed-up-your-terminal-workflow-with-command-aliases-and-profile--mac-30515

.profile файл - це прихований файл. Це необов'язковий файл, який повідомляє системі, які команди запускаються, коли користувач, чий файл профілю він входить у систему. Наприклад, якщо моє ім’я користувача бруно і є файл .profile в / Users / bruno /, весь його вміст буде виконано під час процедури входу.


Це не спрацює при запуску VisualVM з Launchpad. Запуск з командного рядка ніколи не є проблемою, оскільки ви можете встановити змінну середовища JAVA_HOME.
Крістофер Шульц

-2

MacOS використовує / usr / libexec / java_home для пошуку поточної версії Java. Один із способів обходу - це зміна файлу плістів, як пояснено @ void256 вище. Інші способи - взяти резервну копію java_home і замінити її на власний сценарій java_home, що має код
відлуння $ JAVA_HOME

Тепер експортуйте JAVA_HOME до потрібної версії SDK, додавши наступні команди до ~ / .bash_profile. export JAVA_HOME = "/ Система / Бібліотека / Java / JavaVirtualMachines / 1.6.0.jdk / Зміст / Головна" startctl setenv JAVA_HOME $ JAVA_HOME /// Зробити середовище змінною глобальним

Запустіть джерело команд ~ / .bash_profile для запуску вищезазначених команд.

Будь-коли потрібно змінити JAVA_HOME, він може скинути значення JAVA_HOME у файлі ~ / .bash_profile.


Все, що спирається на змінні середовища, не буде працювати. Справа в тому, що програми, запущені через LaunchPad тощо, не матимуть такої налаштування навколишнього середовища. Зломок плістів вище здається "найкращим" тим, що він фактично досягає бажаного результату. Я ще не впевнений у будь-яких недоліках. Дивіться відповідь від @Tony, яка має ту саму проблему.
Крістофер Шульц

-3

Я хотів змінити форму версії java за замовчуванням на 1.6 * на 1.7 *. Я спробував наступні кроки, і це спрацювало для мене:

  • Видалено посилання "java" з-під / usr / bin
  • Створив її знову, вказуючи на нове місце:

ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java java

  • підтверджено "java -версія"

java версія "1.7.0_51"
Java (TM) SE Runtime Environment (збірка 1.7.0_51-b13)
Java HotSpot (TM) 64-бітний сервер VM (збірка 24.51-b03, змішаний режим)


Не відповідає на питання: це не вплине на поведінку с /usr/libexec/java_home.
Крістофер Шульц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.