安装JDK时设置Path 和 Classpath

来源:互联网 发布:校园网络电视台方案 编辑:程序博客网 时间:2024/05/21 11:03

一、设置Path

  在安装好JDK程序后,在JDK安装目录下的bin目录中,会提供一些开发Java程序时必备的工具程序。对于Java的初学者,建议从命令符模式(cmd模式)来操作这些工具程序。可以通过”Win+R“,再输入“cmd”命令来打开命令符模式。

  虽然你知道JDK的工具程序位于bin目录下,但操作系统并不知道如何找到这些工具程序。所以当输入“javac”尝试执行编译程序时,命令符模式下会告诉你找不到javac工具程序。(会提示:‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件)。

必须告诉操作系统,应该到哪些目录下尝试找到你所想使用的工具程序。有几个方法可以进行这项设置,最简便的方法就是设置系统变量中的Path的环境变量。在"我的电脑"图标上选择并单击右键选择“属性”后切换到“高级”页面,并单击下方的“环境变量”按钮,在“环境变量”对话框中编辑Path变量。在Path变量的“编辑系统变量”对话框中,在“变量值”文本框的最前方输入JDK bin目录的路径,然后紧跟着一个分号,以作为分隔,单击“确定”按钮即可完成设置。(在Win10系统中有一点点不同,此时是将JDK bin的目录的路径像一个条目一样加在已有路径的下方,路径可以上下移动)

之所以要将JDK的路径设置放置在Path变量设置的最前方,是因为操作系统在搜索Path路径设置时,会从最前方开始读取,如果在路径下找到指定程序,就会直接执行。当你的系统中安装在两个以上的JDK时,在Path路径中的设置顺序,将决定执行哪个JDK下的工具程序。

设置Path变量之后,要重新打开一个命令模式才能重新读入Path变量内容,接着如果执行javac程序,应该可以看到与之前不同的画面。(这个是成功的画面)

如果Path设置是寻找JDK安装目录下的bin目录,则操作系统会搜索JDK安装目录下的工具程序。这样当执行java程序时,就会使用JDK附带的JRE,而不是公用的JRE。这两个JRE的安装路径并不相同。

   简单地说,操作系统会尝试在指定的Path变量中寻找指定的工具程序。当输入javac命令时,由于Path变量中有设置JDK的bin目录的路径,操作系统就可以根据这个信息来找到javac工具程序。

二、设置Classpath

Java执行环境本身就是一个平台,执行这个平台上的程序是已编译完成 的Java程序(Java程序编译完成之后,会以.class文件存在)。如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统找到指定的工具程序(以Windows来说就是找到了.exe文件),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(也就是.class文件)。

有几个方法可以设置Classpath,最简单的方法是在系统变量中新增Classpath环境变量。在“系统变量”下单击“新建”按钮,在“变量名”文本框中输入Classpath,在“变量值”文本框中输入Java类文件的位置。例如可以输入.;E:\Java9\lib\tools.jar;E:\Java9\lib\rt.jar(jar文件是zip压缩格式,其中包括.class文件和jar中的Classpath设置),每一路径中间必须以“;”作为分隔。第一个用“.;”作为分隔。


    事实上JDK默认就会到当前工作目录(上面的“."设置),以及JDK的lib目录中寻找Java程序。所以如果Java程序是在这两个目录中,则不必设置Classpath变量也可以找得到,将来如果Java程序不是放置在这两个目录中,则可以按上述方法设置Classpath。《Java学习笔记——林信良 编著  P22》

今天我要安装最新的JDK9时,在lib中并没有发现tools.jar和rt.jar,然后我就没有设置第二步,在后来的程序中也可以正常执行。我猜测在JDK9中已经将Classpath这一步包含在了第一步,以节省配置过程的复杂程度。

总而言之,设置Classpath的目的在于告诉Java执行环境,在哪些目录下可以找到你所要执行的Java程序。一个分辨Path与Classpath的方式就是:“对于Windows”操作系统来说,path是让操作系统可以找到.exe执行程序的存在,而对于Java执行环境来说,Classpath就是让JVM可以找到.class执行程序 的存在“


写一个Java程序来测试是否配置成功:

在编写程序之前首先要确定可以看得到文件的扩展名。(相关配置不再介绍)

接着选择一个目录来编写Java源代码文件。假设该文件存储在E:\workspace目录,你要新建一个”文本文件“(也就是.txt文件),并重新命名为HelloJava.java。由于是将文件文件的扩展名从.txt改为.java,所以系统会询问你是否更改扩展名,应确定更改,接着以文本方式打开HelloJava.java文件并写入以下程序:

public class HelloJava{

public static void mian(string[] args) {

System.out.println("Hello,My first program!");

}

}


接着使用命令符模式下进入 E:\workspace目录下使用javac工具程序来编译.java文件,这里指定编译HelloJava.java命令如下:

E:\workspace\javac HelloJava.java

如果编译顺利通过,则在HelloJava.java所在目录,会出现一个HelloJava.class文件,这是已经编译完成的Java字节码(Bytecodes)文件程序。

在顺利编译出.class的文件之后,可以使用java工具程序来执行它。执行时必须指定类名称,就以上的例子来说,也就是指定HelloJava.class这个文件的主文件名。命令执行方式如下:

E:\workspace>java HelloJava

java工具程序会根据你指定的类名称,实际加载.class的文件。以上来说,就是载入HelloJava.class并执行,执行的结果应该是打印出:Hello,My first program!

祥见《Java笔记——林信良 编著》P20~P26


阅读全文
0 0
原创粉丝点击