如何在Linux上自动设置JAVA_HOME环境变量
问题:我需要在我的 Linux 机器上编译 Java 程序。为此我已经安装了 JDK (Java Development Kit),而现在我正试图设置 JAVA_HOME 环境变量使其指向安装好的 JDK 。关于在 Linux 上设置 JAVA_HOME 环境变量,最受推崇的办法是什么?
许多 Java 程序或基于 Java 的集成开发环境 (IDE)都需要设置好 JAVA_HOME 环境变量。该变量应指向 Java 开发工具包 (JDK)或Java 运行时环境 (JRE)的安装目录。JDK 不仅包含了 JRE 提供的一切,还带有用于编译 Java 程序的额外的二进制代码和库文件(例如编译器,调试器及 JavaDoc 文档生成器)。JDK 是用来构建 Java 程序的,如果只是运行已经构建好的 Java 程序,单独一份 JRE 就足够了。
当您正试图设置 JAVA_HOME 环境变量时,麻烦的事情在于 JAVA_HOME 变量需要根据以下几点而改变:(1) 您是否安装了 JDK 或 JRE;(2) 您安装了哪个版本;(3) 您安装的是 Oracle JDK 还是 Open JDK。
因此每当您的开发环境或运行时环境发生改变(例如为 JDK 更新版本)时,您需要根据实际情况调整 JAVA_HOME 变量,而这种做法是繁重且缺乏效率的。
以下 export 命令能为您自动设置 JAVA_HOME 环境变量,而无须顾及上述的因素。
若您安装的是 JRE:
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))若您安装的是 JDK:
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))根据您的情况,将上述命令中的一条写入 ~/.bashrc(或 /etc/profile)文件中,它就会永久地设置好 JAVA_HOME 变量。
注意,由于 java 或 javac 可以建立起多个层次的符号链接,为此 readlink -f 命令是用来获取它们真正的执行路径的。
举个例子,假如您安装的是 Oracle JRE 7,那么上述的第一条 export 命令将自动设置 JAVA_HOME 为:
/usr/lib/jvm/java-7-oracle/jre若您安装的是 Open JDK 第8版,那么第二条 export 命令将设置 JAVA_HOME 为:
/usr/lib/jvm/java-8-openjdk-amd64简而言之,这些 export 命令会在您重装/升级您的JDK/JRE,或更换默认 Java 版本时自动更新 JAVA_HOME 变量。您不再需要手动调整它。
via: http://ask.xmodulo.com/set-java_home-environment-variable-linux.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/57678.html
javalinux相关文章
- Linux中常用文件系统技术指南(linux的常用文件系统)
- Linux编写定时循环任务实现自动化(linux循环定时器)
- Linux系统自动挂载:一种轻松便捷的方式(linux系统自动挂载)
- 同步Linux 下 SVN 多库自动同步方案(svn多库linux)
- 探索Linux系统的自动重启原因(linux自动重启原因)
- 占用Linux下查看进程CPU占用情况(linux查看进程cpu)
- Linux服务自动启动设置全攻略(linux自启动设置)
- 过期备份Linux自动删除过期备份的有效解决方案(linux自动删除)
- Linux公社:自由、开放式下载体验(linux公社下载)
- 开放源码, Linux 助力企业发展(linux开源协议)
- Linux文件系统分区技术指南(linux文件分区)
- Linux磁盘资源管理:du命令的使用(linux磁盘空间命令)
- 禁用Linux系统的防火墙安全措施(关闭linux的防火墙)
- 让Java桥接Linux新世界的重要性(java链接linux)
- 空间探索Linux名称空间的奥秘(linux名称)
- Linux进程优雅退出之旅(linux进程结束)
- Linux下如何实现自动触发事件?(linux触发事件)
- Linux下实现定时自动任务(linux下的定时任务)
- Linux下的窗口管理器:简单、高效、强大(linux窗口管理器)
- 函数利用Linux的popen函数来实现命令行交互(linux的popen)
- Linux自动修复:让系统无忧运行(linux自动修复)
- Linux Java时区调整:让处理日期更加方便(linux java时区)