我是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
你能否告诉我需要为root用户修改哪些文件以及非root用户以及java的确切位置?
find /usr/lib/jvm/java-1.x.x-openjdk
vim /etc/profile
如果以非特权用户身份登录,则前置sudo,即. sudo vim
按'i'进入插入模式
加:
export JAVA_HOME="path that you found" export PATH=$JAVA_HOME/bin:$PATH
注销并重新登录,重新启动或使用source /etc/profile
在当前shell中立即应用更改
做Oracle的工作(作为以前的Sun员工,我不能习惯那个)
ln -s latestJavaRelease/usr/java/default
其中latestJavaRelease是你要使用的版本
然后导出JAVA_HOME =/usr/java/default
给出的答案是以前的帖子是有效的。但是,关于以下方面,没有一个答案是完整的:
不建议仅由于以下原因而更改/ etc / profile :(如/ etc / profile中所述):
除非您知道自己在做什么,否则更改此文件不是一个好主意。最好在/etc/profile.d/中创建一个custom.sh shell脚本来对您的环境进行自定义更改,因为这将避免在将来的更新中合并。*
因此,如上所述,为自定义更改创建/etc/profile.d/custom.sh文件。
现在,要始终与正在安装的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 ::”)
并记住拥有#!/ bin / bash在custom.sh文件上
对于所有用户,我建议将以下行放入 /etc/profile
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
这将动态更新,并与替代系统配合良好.请注意,更新只会在新的登录shell中进行.
您可以使用/ etc/profile或更好的文件,如/etc/profile.d/jdk_home.sh
export JAVA_HOME=/usr/java/jdk1.7.0_05/
你必须记住,这个文件只加载了新的登录shell.所以在bash -l或新的gnome-session之后,它不会随着新的Java版本而改变.
在Linux中设置路径非常容易.做如下:
步骤1打开终端并输入 sudo gedit .bashrc
第2步它会询问您的密码.输入密码后,将打开bash文件.然后转到结尾并在下面输入
第3步
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/" export PATH=$PATH:$JAVA_HOME/bin
步骤4 然后保存文件并退出文件
以上是针对单个用户的.对于所有用户,您必须按照以下步骤操作
步骤1 gedit /etc/profile
第2步 export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
步骤3 export PATH=$PATH:$JAVA_HOME/bin
希望这可以帮助.谢谢!
在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
我最初忽略了第一行(the #!/bin/sh
),没有它就行不通.
现在它正在运作:
$ echo $JAVA_HOME /opt/ibm/java-x86_64-60/