как установить java\_home в linux для всех пользователей

<p>я новичок в системе linux и, похоже, слишком много папок java. </p><p>java-версия дает мне:</p><ul> <li>java версия "1.7.0\_55"</li> <li>среда выполнения openjdk (rhel-2.4.7.1.el6\_5-x86\_64 u55-b13)</li> <li>64-битный сервер openjdk vm (сборка 24.51-b03, смешанный режим)</li> </ul><p>когда я пытаюсь построить проект maven, я получаю сообщение об ошибке:</p><pre><code>error: java\_home is not defined correctly. we cannot execute /usr/java/jdk1.7.0\_05/bin/java </code></pre><p>не могли бы вы сказать мне, какие файлы мне нужно изменить как для пользователя root, так и для пользователя без полномочий root, и где именно находится java?</p>

<ol> <li><code>find /usr/lib/jvm/java-1.x.x-openjdk</code></li> <li><p><code>vim /etc/profile</code></p> <p>prepend sudo, если вы вошли в систему как непривилегированный пользователь, т.е. <code>sudo vim</code></p></li> <li>нажмите «я», чтобы войти в режим вставки</li> <li><p>добавлять:</p> <pre><code>export java\_home="path that you found" export path=$java_home/bin:$path </code></pre></li> <li>выйдите из системы и войдите снова, перезагрузите компьютер или используйте <code>source /etc/profile</code> для немедленного применения изменений в текущей командной консоли</li> </ol>

<p>для всех пользователей я бы рекомендовал разместить следующую строку в <code>/etc/profile</code></p><pre><code>export java\_home=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") это будет обновляться динамически и хорошо работает с альтернативами системой. обратите внимание, что обновление будет происходить только в новой оболочке входа в систему.

вы можете использовать/etc/profile или лучше файл, такой как /etc/profile.d/jdk_home.shexport java_home=/usr/java/jdk1.7.0_05/ вы должны помнить, что этот файл загружается только с новыми оболочками для входа в систему. то есть после bash -l или нового сеанса gnome, и что он не меняется с новыми версиями java.

ни один из других ответов не был «залипать» для меня в rhel 7, даже установка java_home и path непосредственно в /etc/profile или ~/.bash_profile не сработала бы. каждый раз, когда я пытался проверить, был ли установлен java_home, он показывался пустым:$ echo $java_home (<-- no output) то, что я должен был сделать, это настроить скрипт в /etc/profile.d/jdk_home.sh:#!/bin/sh export java_home=/opt/ibm/java-x86_64-60/ export path=$java\_home/bin:$path первоначально я пренебрег первой строкой (#!/bin/sh), и без нее не получится.сейчас это работает:$ echo $java_home /opt/ibm/java-x86_64-60/ 

очень легко установить путь в linux. сделайте следующее:<strong> step-1 </strong>откройте терминал и введите sudo gedit .bashrc<strong> step-2 </strong>он спросит вас ваш пароль. после ввода пароля откроется файл bash. затем перейдите к концу и введите ниже <strong> шаг 3 </strong>  export java_home= /usr/lib/jvm/java-8-openjdk-amd64/ export path="$path:$java_home/bin" <strong> step-4 </strong>затем сохраните файл и выйдите из файлавыше для одного пользователя. для всех пользователей, вы должны выполнить следующие шаги<strong> шаг 1 </strong>gedit /etc/profile<strong> шаг 2 </strong>export java_home=/usr/lib/jvm/java-8-openjdk-amd64/<strong> шаг 3 </strong>export path=$path:$java_home/binнадеюсь это поможет. спасибо!

делать то, что делает oracle (как бывший сотрудник sun, я не могу привыкнуть к этому)ln -s latestjavarelease/usr/java/default где latestjavarelease - версия, которую вы хотите использоватьзатем экспортируйте java_home =/usr/java/default

ответ на предыдущие посты действителен. но ни один ответ не является полным в отношении:  изменение/etc/profile не рекомендуется просто по причине (как указано в/etc/profile): <blockquote>  не стоит менять этот файл, если вы не знаете, что делаете. гораздо лучше создать скрипт оболочки custom.sh в /etc/profile.d/ для внесения пользовательских изменений в вашу среду, как это предотвратит необходимость слияния в будущих обновлениях.   </blockquote><ol start="2"> поэтому, как указано выше, создайте файл /etc/profile.d/custom.sh для пользовательских изменений. теперь, чтобы всегда быть в курсе новых версий java, никогда не ставьте абсолютный путь, вместо этого используйте: <blockquote> #if сделать jdk в качестве дома java export java_home = $ (ссылка для чтения -f/usr/bin/javac | sed "s:/bin/javac ::")</p> <p>or</p> <p>#if делает jre как java дома</p> <p>export java\_home = $ (readlink -f/usr/bin/java | sed "s:/bin/java ::") </blockquote><ol start="4"> и не забудьте иметь<strong> #!/bin/bash </strong>в файле custom.sh 

скопируйте путь к файлу bin, который вы установили"твой путь"откройте терминал и отредактируйте файл окружения, набрав следующую команду,"sudo nano/etc/environment"в этом файле добавьте следующую строку (заменив your_path на только что скопированный путь):java_home = "your_path"этого должно быть достаточно для установки переменной среды. теперь перезагрузите этот файл:"источник/etc/environment"теперь проверьте это, выполнив:echo $ java\_home</p>

<p>в linux я добавляю эту строку в мой ~/.profile:</p><pre><code>export java\_home=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname) 

публикация в качестве ответа, так как я не имею права комментировать.<strong> укажите на примечание </strong>: следуйте принятому ответу, опубликованному "that dave guy".после установки переменных убедитесь, что вы установили соответствующие разрешения для каталога java, в котором он установлен.chmod -r 755 /usr/java 

пока мы собираемся настроить java_home, позвольте мне поделиться некоторыми преимуществами настройки java_home или любой другой переменной среды:1) jdk легко обновить, не влияя на запуск приложения и файл конфигурации, который указывает на java_home. вам просто нужно скачать новую версию и убедиться, что ваш java_home указывает на новую версию java. это лучшее преимущество использования переменных окружения или ссылок.2) переменная java_home короткая и краткая вместо полного пути к установочному каталогу jdk.3) переменная java_home является независимой от платформы, т. е. если ваш загрузочный скрипт использует java_home, он может работать в windows и unix без каких-либо изменений, вам просто нужно установить java_home в соответствующей операционной системе.подробнее: <a href="http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4bwmayijh">http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4bwmayijh 

шаг 1 - проверьте текущую версию java с помощью «echo $ java\_home»</p><p>шаг 2 - vim/etc/profile</p><p>шаг 3 - в конце файла вы найдете export java\_home, нам нужно указать новый путь, убедиться, что он не относительный.</p><p>шаг 4 - сохранить и выйти: wq</p><p>шаг 5 - «источник/etc/profile /», это приведет к выполнению изменения</p><p>шаг 6 - снова сделайте echo $ java_home - изменение будет отражено.

просто добавьте эту команду в ваш dockerfilerun echo "java_home=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile && source /etc/profile && echo $java_home 

это очень простой скрипт для решения проблемыexport java_home_bin=which java export java_home_dir=dirname $java\_home\_bin` export java\_home=`dirname $java_home_dir и для тестирования:echo $java\_home </code></pre>

<p>вероятно, это хорошая идея, чтобы получить любой профиль, который вы редактируете, чтобы избежать необходимости использовать новый логин.</p><p>либо: source /etc/ or ./etc /</p><p>где тот профиль, который вы редактировали.</p>