问:我需要在我的Linux机器上编译一个Java程序。为此,我安装了JDK(Java开发工具包),现在我正在尝试设置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)是OracleJDK还是OpenJDK。所以每当你的开发环境或运行环境发生变化时(比如更新JDK的版本),你都需要根据实际情况调整JAVA_HOME变量,这种做法繁琐且效率低下。以下导出命令可以自动为您设置JAVA_HOME环境变量,而不管以上因素。如果安装了JRE:exportJAVA_HOME=$(dirname$(dirname$(readlink-f$(whichjava))))如果安装了JDK:exportJAVA_HOME=$(dirname$(dirname$(readlink-f$(whichjavac))))根据您的情况,将上述命令之一写入~/.bashrc(或/etc/profile)文件,它将完美设置JAVA_HOME变量。注意,由于java或javac可以建立多级符号链接,所以使用“readlink-f”命令获取它们真正的执行路径。例如,如果你安装了OracleJRE7,上面的第一个导出命令会自动将JAVA_HOME设置为:/usr/lib/jvm/java-7-oracle/jre如果你安装了OpenJDK8,那么第二个导出命令会设置JAVA_HOMEto:/usr/lib/jvm/java-8-openjdk-amd64简而言之,这些导出命令将在您重新安装/升级您的JDK/JRE时使用,或者在更改默认Java版本时自动更新JAVA_HOME变量。您不再需要手动调整它。通过:http://ask.xmodulo.com/set-java_home-environment-variable-linux.html
