如何在Linux中为所有用户设置JAVA_HOME

Amr*_*uta 146 java linux path-variables java-home

我是Linux系统的新手,似乎有太多的Java文件夹.

java -version给了我:

  • java版"1.7.0_55"
  • OpenJDK运行时环境(rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • OpenJDK 64位服务器VM(内置24.51-b03,混合模式)

当我尝试构建Maven项目时,我收到错误:

Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Run Code Online (Sandbox Code Playgroud)

你能否告诉我需要为root用户修改哪些文件以及非root用户以及java的确切位置?

Tha*_*Guy 299

  1. find /usr/lib/jvm/java-1.x.x-openjdk
  2. vim /etc/profile

    如果以非特权用户身份登录,则前置sudo,即. sudo vim

  3. 按'i'进入插入模式
  4. 加:

    export JAVA_HOME="path that you found"
    
    export PATH=$JAVA_HOME/bin:$PATH
    
    Run Code Online (Sandbox Code Playgroud)
  5. 注销并重新登录,重新启动或使用source /etc/profile在当前shell中立即应用更改

  • 不要忘记删除双引号并从键盘重新创建它们,因为只有复制和粘贴可能会造成麻烦. (25认同)
  • 你需要运行`source/etc/profile`来使更改立即生效! (10认同)
  • @rbaleksandar一些应用程序依赖于`JAVA_HOME`,也不会伤害它的设置. (9认同)
  • 是! 谢谢你的补充. (2认同)
  • IntelliJ就是这样一个应用程序 - 而不是一个小应用程序. (2认同)
  • 我认为可以安全地提及如何通过按“Esc”进入命令模式,然后键入“:w”并按“Enter”来保存您所做的更新。 (2认同)

Eer*_*nen 93

对于所有用户,我建议将以下行放入 /etc/profile

export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
Run Code Online (Sandbox Code Playgroud)

这将动态更新,并与替代系统配合良好.请注意,更新只会在新的登录shell中进行.

  • 遵守简单的JRE(甚至无头)使用`export JAVA_HOME = $(readlink -f/usr/bin/java | sed"s:/ bin/java ::")`而不是 - 注意我只使用`java` ,不是'javac` (8认同)
  • 如此酷的解决方案。热爱动态方面! (2认同)

flo*_*lob 34

您可以使用/ etc/profile或更好的文件,如/etc/profile.d/jdk_home.sh

export JAVA_HOME=/usr/java/jdk1.7.0_05/
Run Code Online (Sandbox Code Playgroud)

你必须记住,这个文件只加载了新的登录shell.所以在bash -l或新的gnome-session之后,它不会随着新的Java版本而改变.

  • 谢谢.我把你和@ Eero的答案混合在一起,为两全其美;) (2认同)

Kyl*_*ner 28

在RHEL 7中,没有其他答案"坚持"我,甚至设置JAVA_HOMEPATH直接在/etc/profile~/.bash_profile不会工作.每当我试图检查是否JAVA_HOME已设置时,它将显示为空白:

$ echo $JAVA_HOME
    (<-- no output)
Run Code Online (Sandbox Code Playgroud)

我所要做的就是建立一个脚本/etc/profile.d/jdk_home.sh:

#!/bin/sh
export JAVA_HOME=/opt/ibm/java-x86_64-60/
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

我最初忽略了第一行(the #!/bin/sh),没有它就行不通.

现在它正在运作:

$ echo $JAVA_HOME
/opt/ibm/java-x86_64-60/
Run Code Online (Sandbox Code Playgroud)


PyD*_*SRS 10

在Linux中设置路径非常容易.做如下:

步骤1打开终端并输入 sudo gedit .bashrc

第2步它会询问您的密码.输入密码后,将打开bash文件.然后转到结尾并在下面输入

第3步

export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
export PATH=$PATH:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)

步骤4 然后保存文件并退出文件

以上是针对单个用户的.对于所有用户,您必须按照以下步骤操作

步骤1 gedit /etc/profile

第2步 export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"

步骤3 export PATH=$PATH:$JAVA_HOME/bin

希望这可以帮助.谢谢!

  • 此答案仅为当前用户设置. (2认同)

小智 10

首先,您需要查明您的 PC 中安装了哪种 Java 以及要使用哪一种。对于具有 root 权限的打开终端。

 sudo su

 ls /usr/lib/jvm/
Run Code Online (Sandbox Code Playgroud)

现在它将列出可用的 java 版本。选择列出的版本。

复制路径直到那里。

现在打开bashrc

  nano ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

将以下命令添加到末尾

 export JAVA_HOME="path that you copied"

  export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

之后保存文件并按 Ctrl+S 然后按 Ctrl+X 退出

现在运行以下命令:

  source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)


Vir*_*esh 9

复制你安装的bin文件路径

YOUR PATH
Run Code Online (Sandbox Code Playgroud)

通过键入以下命令打开终端并编辑环境文件,

sudo nano /etc/environment
Run Code Online (Sandbox Code Playgroud)

在此文件中,添加以下行(替换YOUR_PATH为刚刚复制的路径):

JAVA_HOME="YOUR_PATH"
Run Code Online (Sandbox Code Playgroud)

这应该足以设置环境变量。现在重新加载这个文件:

source /etc/environment
Run Code Online (Sandbox Code Playgroud)

现在通过执行来测试它:

echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

  • olny 影响当前终端会话 (3认同)

小智 6

做Oracle的工作(作为以前的Sun员工,我不能习惯那个)

ln -s latestJavaRelease/usr/java/default
其中latestJavaRelease是你要使用的版本

然后导出JAVA_HOME =/usr/java/default


alo*_*adi 5

给出的答案是以前的帖子是有效的。但是,关于以下方面,没有一个答案是完整的:

  1. 不建议仅由于以下原因而更改/ etc / profile :(如/ etc / profile中所述):
  • 除非您知道自己在做什么,否则更改此文件不是一个好主意。最好在/etc/profile.d/中创建一个custom.sh shell脚本来对您的环境进行自定义更改,因为这将避免在将来的更新中合并。*
  1. 因此,如上所述,为自定义更改创建/etc/profile.d/custom.sh文件。

  2. 现在,要始终与正在安装的Java的更新版本保持同步,请不要放置绝对路径,而应使用:

#if将jdk设为Java主页

导出JAVA_HOME = $(readlink -f / usr / bin / javac | sed“ s:/ bin / javac ::”)

要么

#if将jre设为Java主页

导出JAVA_HOME = $(readlink -f / usr / bin / java | sed“ s:/ bin / java ::”)

  1. 并记住拥有#!/ bin / bash在custom.sh文件上


Ng *_*ong 5

1 ...使用快捷键Ctlr++打开终端AltT

2...执行以下命令:

echo export JAVA_HOME='$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")' | sudo tee /etc/profile.d/jdk_home.sh > /dev/null
Run Code Online (Sandbox Code Playgroud)

3...(推荐)重新启动您的虚拟机/计算机。source /etc/source如果不想重启电脑也可以使用

4 ...使用快捷键Ctlr++打开终端AltT

5...验证 JAVA_HOME 安装

echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

来自flob的单行本,归功于他们