我刚刚用sudo apt-get install openjdk-6-jdk命令在Ubuntu中安装了JDK, 安装后Java bin目录在哪里?如何为该目录设置环境路径?我对Ubuntu没什么经验,有人能给我一些建议或者推荐一些好的网站供参考吗?
当前回答
从已安装的列表中设置java版本。查看已安装版本列表,执行以下命令:
update-java-alternatives --list
然后按如下命令设置java版本:
sudo update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
其他回答
Update bashrc file to add JAVA_HOME sudo nano ~/.bashrc Add JAVA_HOME to bashrc file. export JAVA_HOME=/usr/java/<your version of java> export PATH=${PATH}:${JAVA_HOME}/bin Ensure Java is accessible java -version In Case of Manual installation of JDK, If you got an error as shown below Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object Execute the following command in your JAVA_HOME/lib directory: unpack200 -r -v -l "" tools.pack tools.jar Execute the following commands in your JAVA_HOME/jre/lib ../../bin/unpack200 rt.pack rt.jar ../../bin/unpack200 jsse.pack jsse.rar ../../bin/unpack200 charsets.pack charsets.jar Ensure Java is accessible java -version
Ubuntu将openjdk6安装到/usr/lib/jvm/java-6-openjdk路径下。因此,您将在/usr/lib/jvm/java-6-openjdk/bin中设置bin。通常为java和相关的可执行文件自动设置类路径。
让我简化一下:
从Oracle网站下载JDK: Link 提取它 在/usr/lib/即/usr/lib/jvm中创建一个文件夹(jvm) 将解压缩的文件夹从JDK移动到/usr/lib/jvm/
*注意:使用终端,sudo, mv命令,即sudo mv
在/etc/profile目录下创建一个.sh文件D / eg: /etc/profile. D / myenvar .sh .sh文件类型
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0
export PATH=$PATH:$JAVA_HOME/bin
*注意:使用终端,gedit和sudo例如:sudo gedit myenvvar.sh
关闭电脑,所有这些步骤后,重新启动它 打开终端,输入
java - version
检查输出,然后输入
echo $ JAVA_HOME
Java通常安装在/usr/java中 找到您拥有的版本,然后执行以下操作:
假设您正在使用bash(如果您刚刚开始,我建议使用bash而不是其他shell),您可以简单地输入bash来启动它。
编辑~/。Bashrc文件,添加如下路径:
例如,我们~/.bashrc
插入以下几行:
export JAVA_HOME=/usr/java/<your version of java>
export PATH=${PATH}:${JAVA_HOME}/bin
保存更改后,退出并重新启动bash,或者只输入bash启动一个新的shell
输入export以确保路径正确。
输入java -version以确保java是可访问的。
如何安装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
推荐文章
- 安装tzdata非交互式
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder