我刚刚用sudo apt-get install openjdk-6-jdk命令在Ubuntu中安装了JDK, 安装后Java bin目录在哪里?如何为该目录设置环境路径?我对Ubuntu没什么经验,有人能给我一些建议或者推荐一些好的网站供参考吗?


当前回答

如果要设置单个用户的JAVA_HOME / PATH,请登录自己的账号,打开.bash_profile文件

$ vi ~/.bash_profile

使用export JAVA_HOME=<path-to-java>语法设置JAVA_HOME如下所示。如果设置的路径为“/usr/java/jdk1.5.0_07/bin/java”,则设置如下:

export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java

“PATH”的设置如下:

export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

请根据您的设置替换/usr/java/jdk1.5.0_07。保存并关闭文件。只需登出并重新登录即可查看新的更改。或者,输入以下命令立即激活新的路径设置:

$ source ~/.bash_profile

OR

$ . ~/.bash_profile

验证新设置:

$ echo $JAVA_HOME
$ echo $PATH

提示:使用以下命令找出在UNIX / Linux下java可执行文件的确切路径:

$ which java

请注意文件~/。Bashrc与此类似,不同之处在于~/。bash_profile仅为Bash登录shell运行,.bashrc为每个新的Bash shell运行。

如果要设置所有用户的JAVA_HOME / PATH,需要在“/etc/profile”或“/etc/bash.”目录下设置全局配置所有用户的Bashrc文件:

# vi /etc/profile

下一步设置PATH / JAVA_PATH变量如下:

export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

保存并关闭文件。再次键入以下命令立即激活路径设置:

# source /etc/profile

OR

# . /etc/profile

其他回答

创建/打开~ /。Bashrc文件$vim ~/.bashrc 添加JAVA_HOME和PATH作为JDK路径

export JAVA_HOME=/usr/java/<your version of java>
export PATH=${PATH}:${JAVA_HOME}/bin

保存文件

现在输入java -version,它会显示你在.bashrc文件中设置的内容。

这也会在会议中持续。

例子:

一旦我在Ubuntu机器上安装了Java Development Kit的openjdk版本,我使用这个过程来创建一个JAVA_HOME环境变量,在每次升级openjdk安装版本后都不需要更改这个环境变量。

首先,我发出一个命令来查找java可执行文件所在的目录。

echo $(readlink -e `which java` | xargs -0 dirname)

如果我对它的输出满意,其他的都可以从它推导出来。

配置JAVA_HOME和PATH环境变量

而不是在~/中添加越来越多的配置。我发现创建一个单独的小文件~/. bashrc文件是一个更干净的实践。Bashrc在运行时可以“包含”。

让我们将该文件命名为~/.java_env_vars(但您可以将其命名为任何您希望的名称)。

在~/中添加一个包含条件。bashrc文件(

~ /开放。在任何文本编辑器中使用Bashrc,并将这些行保存到文件的末尾:

# include the java environment configuration file here (if it exists)
if [ -f "$HOME/.java_env_vars" ]; then
    . $HOME/.java_env_vars
fi

创建Java环境变量配置文件

打开任何文本编辑器,创建Java环境配置文件~/.java_env_vars,并将以下内容添加到其中:

#1.  set a java_bin variable to the directory containing the actual Java executables.
java_bin=$(readlink -e `which java` | xargs -0 dirname)

#2. append "$java_bin" to the PATH environment variable
export PATH=$PATH:"$java_bin"

#3. assign the directory of the current Java installation to the JAVA_HOME environment variable.
export JAVA_HOME=$(dirname "$java_bin")

注意:导出PATH和JAVA_HOME变量只是确保它们在需要时始终可用。

来源你的~/。Bashrc文件(这样你对它所做的更改就会反映出来)使用以下命令:

source ~/.bashrc

测试Java环境变量配置

打开一个新的终端控制台,并通过发出以下命令测试新的Java环境变量:

echo "$PATH" && echo "$JAVA_HOME"

输出应该是两行,就像这样:

/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-11-openjdk-amd64/bin
/usr/lib/jvm/java-11-openjdk-amd64

要设置系统范围,您需要使用

/etc/environment文件sudo gedit /etc/environment . txt

是可以定义任何环境变量的位置。它可以在整个系统范围内可见。变量定义后,系统需要重新启动。

例子:

sudo gedit /etc/environment

添加如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/opt/jdk1.6.0_45/"

你可以在这里找到更多信息:http://peesquare.com/blogs/environment-variable-setup-on-ubuntu/

如何安装java包:

使用官方的ubuntu包安装所需的java版本/版本,使用替代方案进行管理: Sudo apt install -y openjdk-8-jdk 或/和其他版本: Sudo apt install -y openjdk-11-jdk

只有当您的机器上所有软件只有一个版本时,以上答案才正确,您可以跳过使用更新选项。所以你可以在。bashrc或其他地方快速硬编码: 出口JAVA_HOME = / usr / lib / jvm / java-1.8.0-openjdk-amd64 但这是不健康的,因为以后你可能会改变版本。

设置JAVA_HOME(和JAVA_SDK, JAVA_JRE)的正确方法

正确的方法是检测update-alternative指向什么,并始终使用update-alternatives切换活动版本(如果有多个则必须使用update-alternative)。

以下是对这两者的建议:只针对特定的unix帐户或所有帐户(机器级别)。

1. 仅针对特定的Unix帐户:

如果您没有权限在机器级别执行此操作,请使用此选项。

cat <<'EOF' >>~/.bashrc

export JAVA_HOME=$(update-alternatives --query java | grep Value | cut -d" " -f2 | sed 's!\(\/.*\)jre\(.*\)!\1!g')
export JDK_HOME=${JAVA_HOME}
export JRE_HOME=${JDK_HOME}/jre/

EOF

2. 要在机器级别上做到这一点,对于所有的bourne shell,你需要2个步骤:

2.

cat <<'EOF' | sudo tee /etc/profile.d/java_home_env.sh >/dev/null

export JAVA_HOME=$(update-alternatives --query java | grep Value | cut -d" " -f2 | sed 's!\(\/.*\)jre\(.*\)!\1!g')
export JDK_HOME=${JAVA_HOME}
export JRE_HOME=${JDK_HOME}/jre/

EOF

由于你的shell默认情况下可能没有被设置为交互式,你可能也想这样做: 2. b

cat <<'EOF' | sudo tee -a /etc/bash.bashrc >/dev/null
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
EOF

PS:应该不需要更新$PATH,因为update-alternatives会处理到/usr/bin/的链接。 更多信息:https://manpages.ubuntu.com/manpages/trusty/man8/update-alternatives.8.html

我有一个Linux Lite 3.8(它基于Ubuntu 16.04 LTS),在重启时更改以下文件(具有根权限)的路径有帮助。

/etc/profile.d/jdk.sh