win10 java(jdk安装)环境变量配置和相关问题

 更新时间:2019年12月11日 11:14:55   作者:劫烬  
这篇文章主要介绍了win10java(jdk安装)环境变量配置和相关问题解决,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

写在前面的话

咱也不喜欢废话,图片和方法我都会特别标注出来的,方法绝对详细,并且会把各个细节标注出来。

刚开始学习java在环境配置上遇到了很多问题,东看看西看看最终还是解决了。感觉自己碰到的问题蛮全的,这里统一写一篇文章,不光是做个纪录也是方便大家互相学习解决。

前置条件(阅读以下内容需要掌握的知识)

有一台装配了win10的电脑,可以连接网络懂得基本的电脑操作即可。

其他的按照本教程来一遍就可以,保证达到最终配置成功的目的。

准备

先了解一下java

JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。

JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。

显然,这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。

你需要的知道的就是jdk是你这样的开发者所需要的,jre是使用者需要的。

很明显你在安装了jdk必然会集成一个jre来给你使用,就像是你做饭拿jre这个勺子尝了尝你用jdk做出来的东西。

下载jdk

大致明白了之后,然后点击此处下载jdk

在这里插入图片描述

你应该会看到这样的网页

点击图中箭头所指示的地方

如果不一样也没有关系 应该只是网页改版了 有一些英语知识找到JAVA se DOWNLOAD即可

在这里插入图片描述

紧接着点击这里的 windows jdk-xx.x.x_windows-x64_bin.exe

然后浏览器就会开始下载exe文件了,剩下的按照向导程序安装你应该没有问题。

这里我以默认的安装地址为例进行接下来的部分。

常见问题一览

安装后如何配置环境变量

不管你桌面有没有“此电脑”这个图标,这里用微软自带的搜索方法来打开环境变量配置选项卡→

在这里插入图片描述

点击即可打开 “系统属性”选项卡→

在这里插入图片描述

1. 首先配置java_home变量(大小写不影响)

>变量名:JAVA_HOME >变量值:电脑上JDK安装的绝对路径

比如你我这里安装在C:\Program Files\Java\jdk-13.0.1路径处,所以我在变量值的框里填这个→

在这里插入图片描述

如果你找不好路径地址,我也有个好办法(能填好的可以跳过。)

在目录下创建一个文本文件,随便写些文字,然后保存为.html文件。 在这里插入图片描述

然后双击打开这个文件,你的浏览器地址栏会出现路径,把xx.html删去后剩下部分全选复制到变量名即可。

在这里插入图片描述

2. 添加classpath变量

如果存在 CLASSPATH 变量,选中点击 (编辑)

如果没有,点击(新建)

输入/在已有的变量值后面添加:

变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

在这里插入图片描述

3.修改path变量

由于 win10 的不同,当选中 Path 变量的时候,系统会很方便的把所有不同路径都分开了,不会像 win7 或者 win8 那样连在一起。

新建两条路径

%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

(当然也会有连在一起的情况,中间添加一个分号 ; 即可)

在这里插入图片描述

注意这里可能出现的问题。

首先检查一下这里有没有其他路径标到 jar jre jdk包含这些关键字的路径,如果有请把它们删除,因为这说明你之前安装过其他版本或者位置的jdk,会影响到你使用。

(我个人是装matlab时候带了一个jar#貌似是#以及去年装的jdk,后面会出现java和javac地址不统一的问题。这里先排除这个隐患)

为了以防万一,你也可以把刚才添加的两条路径上移至顶端。(我这步偷懒用了runoob的图所以是英文move up)

%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

然后点击保存(确定)确定你的修改。

接着让我们打开cmd进行检验

(打开cmd的方法:win+R唤出运行对话框 输入 cmd 打开cmd)

输入java或者javac ,然后回车会出现一大堆指令就说明配置成功。

在这里插入图片描述

剩余的问题

事情到这里并没有结束,只有一个java程序在你的pc上正常运行了,才能说明我们的准备已经完成了。

为了测试需要准备的

为了解决剩下的问题,我们首先需要一个没有问题的简单程序,譬如 熟知的helloworld。这里我给出代码,使用notepad++作为编辑器,当然使用notepad(记事本)也可以。

public class hellworld {
  public static void main(String []args) {
    System.out.println("Hello World");
  }
}

首先注意java是严格区别大小写的,其次我们保存的文件名需要和创建的类的名字一样,所以我保存的这个文件名叫helloworld.java。

为了方便调试,我建议将该文件暂时就保存在你cmd默认的目录下。

之后调用这个程序时,还是打开cmd。

在对应目录下输入"javac xxx.java" xxx是你的文件名。

这里我输入"javac xxx.java"

如果一切正常javac会在目标文件夹下创建"xxx.class"文件且不返回任何内容,如果出错则上述步骤存在错误,请回头再看看。

然后输入"java xxx"

这里我输入"java helloworld"

输出"hello world"

如图:

在这里插入图片描述

1、版本不统一(出现错误 A JNI error has occurred, please check your installation and try again)

就像我们在上面说的java 和javac版本不统一的情况。

首先学习下我们如何检查版本是否统一:

在cmd输入

"java -version"和"javac -version"注意不要把这里的 空格 给漏了。

版本统一的话会出现以下的样子,注意看版本号是否一致。

在这里插入图片描述

如果不一致则删除掉老版本的文件,再重新安装jdk覆盖一下。(这里说说怎么删除老版本,建议下载everything 一个轻量级的应用 可以快速检索本地的文件)

在本地搜索老版本号,然后将查看日期,将不是这个时间安装的相关文件全部删除,)

2、jar包位置出错(报错java.lang.ClassNotFoundException)

在helloworld阶段遇到这个问题应该还是变量环境的问题。

在经过以上步骤之后依旧出现,再次打开环境变量设置,看看有没有多设置classpath变量的内容,并且把path里面非你所安装版本的路径都删除。(参考上面第一部分的内容。)

总结

以上所述是小编给大家介绍的win10 java(jdk安装)环境变量配置和相关问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • Java动态线程池插件dynamic-tp集成zookeeper

    Java动态线程池插件dynamic-tp集成zookeeper

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等
    2023-03-03
  • springMVC如何对输入数据校验实现代码

    springMVC如何对输入数据校验实现代码

    数据的校验是交互式网站一个不可或缺的功能,数据验证分为客户端验证和服务器端验证,这篇文章主要介绍了springMVC如何对输入数据校验,需要的朋友可以参考下
    2020-10-10
  • Java中的notyfy()和notifyAll()的本质区别

    Java中的notyfy()和notifyAll()的本质区别

    很多朋友对java中的notyfy()和notifyAll()的本质区别不了解,今天小编抽空给大家整理一篇教程关于Java中的notyfy()和notifyAll()的本质区别,需要的朋友参考下吧
    2017-02-02
  • Java中HashMap和TreeMap的区别深入理解

    Java中HashMap和TreeMap的区别深入理解

    首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value
    2012-12-12
  • Java关于jar包的知识详解

    Java关于jar包的知识详解

    这篇文章主要介绍了Java关于jar包的知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • java实现雷霆战机

    java实现雷霆战机

    这篇文章主要为大家详细介绍了java实现雷霆战机,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Java利用 Exchanger 实现游戏中交换装备

    Java利用 Exchanger 实现游戏中交换装备

    JDK 1.5 开始 JUC 包下提供的 Exchanger 类可用于两个线程之间交换信息。下面我们就来看看Java是如何利用Exchanger一行代码实现游戏中交换装备的
    2021-09-09
  • Java的ThreadContext类加载器的实现

    Java的ThreadContext类加载器的实现

    这篇文章主要介绍了Java的ThreadContext类加载器的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Java对字符串进行加密解密

    Java对字符串进行加密解密

    这篇文章主要为大家详细介绍了Java字符串加密解密,对用户输入的每个字符的值进行加密解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Java软件设计模式之适配器模式详解

    Java软件设计模式之适配器模式详解

    这篇文章主要介绍了Java软件设计模式之适配器模式详解,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系,需要的朋友可以参考下
    2023-07-07

最新评论