Java环境变量配置
一.Java的安装
1.下载合适的版本,安装jdk和jre到同一路径下的同一文件夹下,例如:都安装在 E:\Java;
备注: JDK:Java Development Kit ; JRE: Java Runtime Environment
如果你需要运行java程序,只需安装JRE就可以了。 如果你需要编写java程序,需要安装JDK,JDK中包含有JRE。
jdk本身就等于jre+开发工具,直接可以用jdk代用jre
以前的jdk安装一套外置jre,是为了让jdk版本稳定而保持外置jre可以独立更新
11版以后,需要另外单独下载jre。然而现在jre11并没有发布,下载不到。java对最终用户的jre都推荐默认安装jre8,连jre9 jre10都没有推荐。
新安装的jdk11,竟然发现jdk里没有自动安装jre,
运行程序有时候果然不能运行,网上找了一大堆,捣鼓了好长时间,终于找到了一种可行的方案。
解决如下:
以管理员的身份打开命令提示符cd到%JAVA_HOME%(用户安装路径)
然后运行命令bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
然后将自动生成了jre。
二.环境变量的配置
1. 三种进入环境变量编辑的方式
1) 计算机→属性→高级系统设置→高级→环境变量;
2)在控制面板右上角搜索env,然后点击 编辑账户的环境变量
3)点击桌面右下角的开始 → 用户账户 →更改我的环境变量
2. 环境变量的配置(JAVA_HOME,Path,CLASSPATH)
理论上java安装后一个变量都不需要配置,只不过为了命令行敲起来方便和方便以后开发的java小工具,一般都会设置java_home,然后把$Java_home/bin追加到path中。
不要被旧书误导咯,官方说jdk1.5以后就不用配置也不建议配置classpath了。不过有时候为了兼容低版本和其他系统如在linux 中运行ant,就必须配置dt.jar和toolr.jar,要不无法运行。
所以一般是不需要再配classpath了(为了兼容还是配置上吧,有时候出现创建虚拟机失败等各种莫名其妙的问题,待研究到底是什么问题导致的)。
1)JAVA_HOME :变量值为个人 jdk的安装目录;(例如:E:\java\jdk1.8.0_31)
2)Path :找到系统变量里的path,如果没有就新建,在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
备注:如果原来的path有值则在值最后需要有分号,然后再添加值;
3)CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
备注:注意最前面有点 classpath的作用是告诉Java 编辑器在哪里寻找Java编译过程中需要的包和类(.class文件),所以其路径中配置的是lib和lib 下的tools.jar
从jdk-9之后就已经没有tools.jar和dt.jar了,也不需要在classpath里面配置这些jar了,配置可参考: JAVA_HOME=jdk安装路径 JRE_HOME=jre安装路径 PATH= ;%JAVA_HOME%\bin;%JRE_HOME%\bin CLASSPATH=.;%JAVA_HOME%\lib;%JRE_HOME%\lib
更新后,版本带来的变化,模块化后导致不需要或者说将toos.jar和dt.jar文件兼容到其他部分,jdk的lib下面不会再出现这俩文件;
(摘:版本更新到9.0后的变化)JDK 9的核心变化就是引入了一种新的Java编程组件,也就是模块,按照Oracle的说法,它是一个可命名的、自描述的代码和数据集合。模块技术的核心目标是减少Java应用和Java核心运行时环境的大小与复杂性。为此,JDK本身进行了模块化,Oracle希望通过这种方式提升性能、安全性和可维护性。
为了支持Java 9的模块,引入一种新的模块化JAR文件形式,按照这种形式会在其根目录中包含一个module-info.class文件。Oracle同时提供了工具,允许我们组合和优化一组模块,形成自定义的运行时镜像(image),这样的镜像不必将整个Java运行时包含进来。模块化所带来的其他变化包括从Java运行时镜像中移除了rt.jar和tools.jar。
3.Java环境变量设置在用户变量和系统变量的区别
系统变量设定后,会对这台机器的所有用户生效 ;
用户变量设定只对当前用户有效;
一般没有特殊要求的情况下设置的都是系统变量。
用户变量的优先级高于系统变量的,即如果同时配置了某个变量最终使用的是用户变量里的配置,
对于Path这个环境变量,你在命令行(cmd)下输入:echo %Path%
用户环境变量会接在系统环境变量后面。这里强调下,正常对于环境变量,系统会检查用户环境变量,之后再检查系统环境变量,如果有相同的变量名,并不会将两者的内容合并在一起。
三. 检测是否安装成功:
1 在 cmd 窗口中输入:java -version 可以查看java的版本信息 ;
2 编写一简单的类测试:
例如在 E:\aa 下放了一个简单的 Bird.java 的测试类:
public class Bird{ public static void main (String[] args){ System.out.print(1111); } }
1)cd\ 回到根目录;
2)E:进入到e盘目录;
3)cd aa 进入到aa文件夹下;
4)javac Bird.java 编译java文件;
5)Java Bird 运行java class文件。
扩展:java11支持源文件直接运行(666!)
public class Test{ public static void main (String[] args){ System.out.println("Hello World!"); } }
注意没有生成 .class 文件
详见:
JAVA 8与JAVA 11到底该怎么选?
2018年8月25日 08:34:44
2019年6月21日 09:24:45
2020年4月17日 14:35:07
2020年9月1日 01:11:02
2020年12月18日 13:02:08
2021年10月29日 13:23:25