`
shayuye
  • 浏览: 14356 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

开始学习java--设置Path与Classpath(《Java学习笔记》)[摘录]

阅读更多
该内容同样适用于JDK 6
2.2 设置Path与Classpath
对于习惯图形化接口操作的初学者而言,在命令符模式下执行程序是一件陌生的事,也因此不了解Path路径设置的方法与作用,而Java执行的平台也有自己的一套路径规则来寻找编写好的Java类,也就是所谓的Classpath设置。本节将介绍如何进行这些相关的设置。
2.2.1 设置Path
在安装好JDK程序之后,在JDK安装目录(假设是C:\Program Files\Java\jdk1.5.0_06)下的bin目录中,会提供一些开发Java程序时必备的工具程序。对于Java的初学者,建议从命令符模式(在Windows 2000/XP下称之为命令提示符)下来操作这些工具程序。您可以在Windows 2000/XP的“开始”菜单中选择“运行”,输入“cmd”命令来打开命令符模式。
虽然您知道JDK的工具程序是位于bin目录下,但您的操作系统并不知道如何找到这些工具程序。所以当您输入javac尝试执行编译程序时,命令符模式下会告诉您找不到javac工具程序,如图2-8所示。

图2-8 出现这个信息表示找不到指定的工具程序
您必须告诉操作系统,应该到哪些目录下尝试找到您所想使用的工具程序。有几个方法可以进行这项设置,最简便的方法就是设置系统变量中的Path环境变量。在Windows 2000/XP下可以选择桌面上的“我的电脑”并单击鼠标右键,选择“属性”后切换至“高级”页面,并单击下方的“环境变量”按钮,在“环境变量”对话框中编辑Path变量,如图2-9所示。

图2-9 选择Path变量并单击“编辑”按钮以进行路径设置
如图2-10所示,在Path变量的“编辑系统变量”对话框中,在“变量值”文本框中先输入一个“;”,接着输入JDK bin目录的路径(这里假设是C:\Program Files\Java\jdk1.5.0_06\bin),然后单击“确定”按钮即可完成设置。

图2-10 在Path变量中加入JDK的bin目录路径
设置Path变量之后,要重新打开一个命令符模式才能重新读入Path变量内容,接着如果执行javac程序,应该可以看到图2-11所示的画面。

图2-11 若设置Path变量成功,就可以找到指定的工具程序
也可以在命令符模式下执行以下的命令,直接设置目前的环境变量,包括Path变量(这个设置在下次重新打开命令符模式时就不再有效):
set Path=%Path%;C:\Program Files\Java\jdk1.5.0_06\bin由于以上介绍的Path设置都是寻找JDK安装目录下的bin目录,所以操作系统会搜索JDK安装目录下的工具程序。这样当执行java程序时,默认会使用JDK所附的JRE(即C:\Program Files\Java\jdk1.5.0_06\jre),而不是公用的JRE(即C:\Program Files\Java\jre1.5.0_06\)。
简单地说,操作系统会尝试在指定的Path变量中寻找指定的工具程序。当输入javac命令时,由于Path变量中有设置JDK的bin目录的路径,操作系统就可以根据这个信息来找到javac工具程序。
2.2.2 设置Classpath
Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序(后面会介绍到Java程序编译完成之后,会以.class文件存在)。如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统找到指定的工具程序(以Windows来说就是找到.exe文件),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(也就是.class文件)。
有几个方法可以设置Classpath,最简单的方法是在系统变量中新增Classpath环境变量。在图2-9中的“系统变量”下单击“新建”按钮,在“变量名”文本框中输入Classpath,在“变量值”文本框中输入Java类文件的位置。例如可以输入:CLASSPATH=. ; D:\java\lib; C:\java\MyLib 。这里注意,路径中不要包含到包的名字部分,因为包(在windows操作系统下)对应到目录结构,例如包 Package com.pwcrab 其实就是有一个com\pwcrab的相对路径存在。如果该包在C:\java\MyLib 下,完整的路径是C:\java\MyLib\com\pwcrab ,但是设置CLASSPATH时,务必不要包含包部分的路径。还有一点请注意,CLASSPATH中的 “.”表示是在当前目录下先寻找。
但是,在使用JAR文件时,有一些例外,必须在类路径中将JAR文件的实际名称写的完整清楚,而不仅仅是他们的目录位置,例如“.;C:\Program Files\Java\jdk1.5.0_06\lib\tools.jar; C:\Program Files\Java\jdk1.5.0_06\lib\rt.jar”(jar文件是zip压缩格式,其中包括.class文件和jar中的Classpath设置),每一路径中间必须以;作为分隔。
事实上JDK 5.0默认就会到当前工作目录(上面的.设置),以及JDK的lib目录(这里假设是C:\Program Files\Java\jdk1.5.0_06\lib)中寻找Java程序(*.class, *.jar)。所以如果Java程序是在这两个目录中,则不必设置Classpath变量也可以找得到,将来如果Java程序不是放置在这两个目录时,则可以按上述设置Classpath。但是,设置是千万别忘了设置当前目录,即CLASSPATH中的 “.”,否则一旦设置了classpath,即使在java程序的当前路径下执行java.exe,如果在classpath中没有设置“.”(当前路径),那么java.exe执行java程序也会失败。如:(Test.class就是c:\javatest\目录下,但是c:\javatest\目录不在classpath中)
C:\javatest>java Test
        Exception in thread "main" java.lang.NoClassDefFoundError: Test
如果所使用的JDK工具程序具有Classpath命令选项,则可以在执行工具程序时一并指定Classpath。例如:
javac -classpath classpath1;classpath3...其中classpath1、classpath 2是实际要指定的路径。也可以在命令符模式下执行以下的命令,直接设置目前的环境变量,包括Classpath变量(这个设置在下次重新打开命令符模式时就不再有效):
set CLASSPATH=%CLASSPATH%;classpath1;classpath3...总而言之,设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zgzhjj001/archive/2008/04/04/2250335.aspx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics