Window上JDK(oracle,open jdk)的下载安装与Java环境变量的原理,配置及验证

-- Window上JDK(oracle,open jdk)的下载安装与Java环境变量的原理,配置及验证
【官网】:https://www.oracle.com/java/

应用场景

在学习,开发,运行java程序时,一般要确保环境变量正确.

基础资源

使用须知

需要确定openjdk和jdk的区别: 1)openJDK 是对外开放源码的,Oracle JDK则没有(部分开源). 2)docker中默认的jdk都是openjdk. 3)Oracle JDK的构建过程基于OpenJDK,因此OpenJDK与Oracle JDK之间没有技术差异. 4)Oracle JDK关注企业级稳定性,OpenJdk 更新快速,版本发布快。

配置步骤


A)环境变量是干什么的?

操作系统级别的环境变量,可以被该系统中所有程序调用.

B)Cmd中和环境变量配置相关的基本命令.

Cmd下,命令如下:

     Set       ---查看所有变量

     Set  path  ---查看指定变量

     Set  path=c:\win32----为变量赋值

     Set  path=%path%;新值;  ----修改变量值

     Set  path=   ------取消变量的定义

C.环境变量pathclasspath的具体作用.

一般需要设置path,  classpath  (在运行一个类的时候,如果没有配置classpath 需要先进入到该类文件所在的路径,否则需配置,set  classpath=类所在的文件夹路径).

  概括的说就是:path这个环境变量确定了java这样的命令程序所在的目录,classpath 确定了java虚拟机寻找指定类所在java包的所在的目录.           

  总之: path是给操作系统去找java命令程序位置,而classpath是给java命令程序寻找第三方java包的.

D.环境变量设置的注意事项.

1) cd  你的目录,进入当前目录的根目录下,同时 set classpath=c:\aa\bb  set classpath=c:\aa\bb;.   (这里分号后面带个点,表示变量值还包含当前目录,这个很有用).

2 )set classpath=路径, 等号的左右两边都不能有空格,如果路径中本来就有空格,则应该将程序源文件移动到对classpath合法的路径下面。

        3)classpath=后面的值不能有中文字符.

        4)有时需要注销后重启才起作用,同时环境变量有系统级和用户级,环境变量最终的值可能为两者之和,可能是用户级中的设置

        5)系统寻找可执行程序时,先在当前路径下寻找,找不到后再在 相关的环境变量中获得

        6)系统调试编译中经常遇到的问题:调试,编译,发布所以来的jdk版本的不一致.一级环境变量的错误或者没有设置(通过java  -verboss命令可以检查当前的java运行在的jdk版本).

        7)多版本安装时,前一个版本失效: 新版自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:WindowsSystem32目录,而该目录优先级高于JAVA_HOME设置的环境变量.

E.设置过程示例.

e1)设置完的示例.

---------------JAVA_HOME

        D:\Program Files\Java\jdk1.8.0_51

---------------ClassPath  (需要包含下列项,但不要重复)

.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar

---------------Path

%Java_Home%\bin;%Java_Home%\jre\bin;

 

e2)设置过程.


step1)下载JDK.

   Oracle JDK:  https://www.oracle.com/technetwork/java/javase/downloads/index.html

   OpenJDK:      http://jdk.java.net/archive

  


下载完了之后,安装即可,请记住:  jdk安装目录不能放到一个有空格或者有中文的目录中!


   step2)进入环境变量配置界面.

    点击 我的电脑 ——> 右键 ——> 选择属性 ,跳出如下图所示(windows 10系统),点击“高级系统设置”。

    或者 控制面板——>系统和安全——>系统   也可以找到“高级系统设置”。

   

 step3)设置环境变量.

1)“新建”,随后跳出 “新建系统变量” 对话框,一般来说系统变量中是没有JAVA_HOME的,所以我们在弹出的“新建系统变量”对话框中的“变量名”填入 :JAVA_HOME ,“变量值 ”填入 :C:\Program Files\Java\jdk-12.0.1(安装Java时jdk 所在的文件夹,   默认安装都是在C盘的)。

  如果已经存在JAVA_HOME的,那么就在它的变量值的最后面加上分号(即;),然后再将 jdk 的路径添加在这个分号的后面。

          注意:JAVA_HOME的变量值一定要进入到 jdk 所在的目录,然后再复制这个路径放进去

2)新建变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (注意前面的  .;  也要放进去)如下图:

注意:如果已经存在CLASSPATH,则在它的最前面或者最后面添加变量值,如果在最前面添加,应该先添加一个分号(即;),然后再在分号前面添加 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar ( .; 也要放进去);

如果在最后面添加,应该先添加一个分号(即;),然后再在分号后面添加:

  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar ( .; 也要放进去)



       3)打开Path,点击新建按钮,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin注意:从分号分开作为两行)。
         注意: window 10系统中,配置JDK环境变量时,如果不将 Path 的 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 进行如下图这样配置,不分开两行,则会出错。但是如果你的系统是window 7的话,则可以不分开.

4)点击确定,完成配置.


step4)验证是否安装成功.

       验证java:   cmd中输入java.


       验证javac:  cmd中实现javac




常见问题

  • classloader找不到当前目录的class文件
    【解决方案】设置classpath时还要设置一个. ,其中.代表当前目录.示例:.;%Java_Home%in;
  • 环境变量中classpath不生效
    【解决方案】lasspath=路径, 等号的左右两边都不能有空格. 另外值中不能有中文
  • 为什么安装多个版本jdk后原先jdk版本失效了
    【解决方案】新版自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:WindowsSystem32目录,而该目录优先级高于JAVA_HOME设置的环境变量
  • 配置在【高级系统设置】中配置了系统的环境变量,但cmd中java依然识别不了
    【解决方案】因为是【系统变量】,因此要么你右键用管理员权限运行cmd(同理右键运行目标jar程序),要么添加环境变量时同时添加【用户变量】
  • Error: A JNI error has occurred, please check your installation and try again
    【解决方案】java与javac版本不一致(java -version和javac - version),卸载移除原有的java版本

快速入门

参考资料