智能

Java入门教程 JDK环境变数和命令列

Java入门教程 JDK、环境变数和命令列

本文将简单了解环境变数配置项的含义,JDK、JRE和JVM的区别,采用Java命令编译执行程式,以及了解Java的包(package)对class档案所在路径的影响。

环境变数配置

JDK安装完成之后需要配置好环境变数才能使用命令列工具。环境变数配置处:

计算机→属性→高阶系统设定→高阶→环境变数

注:安装JDK时,不要把JDK和JRE安装到同一个目录下,需要有所区分,如:

JDK安装在:D:ProgramFilesJavajdk1.8.0_171

JRE安装在:D:ProgramFilesJavajre1.8.0_171

1、在系统变数或使用者变数中新建变数JAVA_HOME,变数值设定为JDK安装目录

JAVA_HOME为自定义的一个变数,主要用于之后path和classpath使用,后续在修改时只需修改一次即可,根据变数引用原则,后续使用JAVA_HOME时需要加上%,即%JAVA_HOME%。

注:定义系统变数则计算机所有使用者均可以使用,定义使用者变数则只允许当前使用者使用。

2、配置path变数。path变数是已存在的变数,直接编辑新加入%JAVA_HOME%bin和%JAVA_HOME%jrebin即可

path指向JDK的bin目录,可以看到,JDK的bin目录下大多都是一些可执行档案(.exe),配置了path之后,当你在cmd命令列工具中需要使用该目录下执行档案时,如javac命令,系统则会依次搜寻path中设定的路径找到javac.exe档案执行,如果不配置path想要使用bin目录下的命令,则需要在cmd中输入完整的路径。

注:Win10的这种视窗不需要加入分号,如果是Win7那种一横排的内容就需要用分号间隔,如果出现javac命令不能用的情况,就尝试把新增的内容放到所有变数的前面,放到C:开头内容变数后面,如上图所示。

3、配置CLASSPATH变数。在系统变数中新建 CLASSPATH 变数,变数值填写.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;(注意最前面有一点)

CLASSPATH指定你在程式中所引用的类(.class)档案所在的位置,所以它指向JDK中的lib目录,可以看到变数值前会加一个“.”,目的是为了告诉JDK在搜寻class档案时先查询当前目录的class档案,“.”相当于“./”,即当前目录。

JDK、JRE、JVM的区别与联络

JDK

JDK全称Java Development Kit,即Java开发工具包。JDK是整个Java开发的核心,它包含了Java的执行环境(JVM+Java核心类库)和Java工具。

JavaSE,即Java Standard Edition(Java标准版),是我们通常用的一个版本;

JavaEE,即Java Enterprise Edition(Java企业版),核心是EJB3.0, 其提供了更兼便捷的企业级的应用框架;

JavaME,即Java Platform Micro Edition(又称为J2ME),主要用于移动装置、嵌入式装置上的Java应用程序。

JRE

JRE全称Java Runtime Environment,即Java执行时环境。它包含JVM标准实现及Java核心类库,也就是说,如果只是需要执行Java程式,只需要安装JRE即可,相比JDK,JRE内容更少一些。

JVM

JVM全称Java Virtual Machine,即Java虚拟机器。JVM是Java实现平台无关性的关键,JVM能够将 .class 档案中的字节码指令进行识别并翻译成具体平台上的机器指令进行执行,由此实现跨平台。

JDK > JRE > JVM

命令列处理程式

我们直接在命令提示符(cmd)中采用JDK命令列进行Java编译执行等工作,由于之前在环境变数中配置了path路径,path路径指向%JAVA_HOME%bin,该目录下是JDK的一些工具,常用的工具如下:

javac.exe:Java编译器,把Java原始档编译成Java类档案;

jar.exe:Java应用程序打包工具

java.exe:执行Java程式

javadoc.exe:JavaDoc文件生成工具

Hello World

我们采用原生的记事本工具实现程式编码和执行,新建记事本档案Main,加入如下内容后将字尾改为.java。

将Main.java档案放到D盘根目录下,采用javac命令编译、java命令执行

编译:javac Main.java

执行:java Main

package和引用

如果我们在Java档案中加入package如何编译执行呢?

在我们编写的Java档案头部加入package,则要求把Java档案放入package所在目录下,我们在D盘下新建test资料夹,test资料夹下新建a资料夹,把Main.java档案放到a资料夹下,Main.java程式码如下:

编译执行时存在相关路径上的要求,javac可以进入Main.java档案目录中执行,但java命令则要求在package目录所在跟路径下执行,如下:

1、可以进入Main.java档案中执行javac

2、也可以在test所在根目录下执行:

编译:javac ./test/a/Main.java

执行:java test.a.Main (执行java必须要在test所在根目录)

如果Main.java档案引用了自己写的其他Java档案,则可以把其他档案也放到test目录下,javac编译时,用*表示编译全部。

如果程式码中含有中文,javac编译时,可以使用如下命令:

javac -encoding utf-8 xxx.java

异常情况

异常问题:执行javac时出现异常

(错误: 找不到或无法载入主类 com.sun.tools.javac.Main)

处理思路:

1、JDK安装不正确或环境变数配置不正确

JDK和JRE不能安装在同一目录下;

检视path配置的bin目录下是否包含javac.exe档案,如果没有则可能是JDK和JRE安装在同一目录时,被删除了。

环境变数配置要注意分号,以及路径是否正确。尝试path新增的JDK变数放到所有变数的前面,放到C:开头内容变数后面。

2、程式编写不正确

你可能也会喜欢...