java类路径说明(新手必读)

java类路径说明(新手必读)

ID:33359951

大小:74.50 KB

页数:9页

时间:2019-02-25

java类路径说明(新手必读)_第1页
java类路径说明(新手必读)_第2页
java类路径说明(新手必读)_第3页
java类路径说明(新手必读)_第4页
java类路径说明(新手必读)_第5页
资源描述:

《java类路径说明(新手必读)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、类路径 (classpath)当你满怀着希望安装好java,然后兴冲冲地写了个“helloworld”,然后编译,运行,就等着那两个美好的单词出现在眼前。可是不幸的是,只看到了“Can'tfindclassHelloWorld”或者“Exceptioninthread"main"java.lang.NoSuchMethodError:main。为什么呢?编译好的class明明在呀。我们一起来看一看java程序的运行过程。我们已经知道java是通过java虚拟机来解释运行的,也就是通过java命令—javac编译生成的.class文件

2、就是虚拟机要执行的代码,称之为字节码(bytecode),虚拟机通过classloader来装载这些字节码,也就是通常意义上的类。这里就有一个问题,classloader从哪里知道java本身的类库及用户自己的类在什么地方呢?或者有着缺省值(当前路径),或者要有一个用户指定的变量来表明,这个变量就是类路径(classpath),或者在运行的时候传参数给虚拟机。这也就是指明classpath的三个方法。编译的过程和运行的过程大同小异,只是一个是找出来编译,另一个是找出来装载。实际上java虚拟机是由javaluncher初始化的,也就是j

3、ava(或java.exe)这个程序来做的。虚拟机按以下顺序搜索并装载所有需要的类:1、引导类:组成java平台的类,包含rt.jar和i18n.jar中的类。2、扩展类:使用java扩展机制的类,都是位于扩展目录($JAVA_HOME/jre/lib/ext)中的.jar档案包。3、用户类:开发者定义的类或者没有使用java扩展机制的第三方产品。你必须在命令行中使用-classpath选项或者使用CLASSPATH环境变量来确定这些类的位置。我们在上面所说的用户自己的类就是特指这些类。这样,一般来说,用户只需指定用户类的位置,引导类和

4、扩展类是“自动”寻找的。那么到底该怎么做呢?用户类路径就是一些包含类文件的目录,.jar,.zip文件的列表,至于类具体怎么找,因为牵扯到package的问题,下面将会说到,暂时可认为只要包含了这个类就算找到了这个类。根据平台的不同分隔符略有不同,类unix的系统基本上都是“:”,windows多是“;”。其可能的来源是:* “.”,即当前目录,这个是缺省值。* CLASSPATH环境变量,一旦设置,将缺省值覆盖。* 命令行参数-cp或者-classpath,一旦指定,将上两者覆盖。* 由-jar参数指定的.jar档案包,就把所有其他的

5、值覆盖,所有的类都来自这个指定的档案包中。由于生成可执行的.jar文件,还需要其他一些知识,比如package,还有特定的配置文件,本文的最后会提到。可先看看jdk自带的一些例子。我们举个HelloWorld的例子来说明。先做以下假设:* 当前目录是/HelloWorld(或c:HelloWorld,以后都使用前一个)* jdk版本为1.2.2(linux下的)* PATH环境变量设置正确。(这样可以在任何目录下都可以使用工具)* 文件是HelloWorld.java,内容是:  public class HelloWorld  {p

6、ublic static void main(String[] args){System.out.println("Hello World!");System.exit(0);}}首先这个文件一定要写对,如果对c熟悉的话,很有可能写成这样:public static void main(int argc,String[] argv){....}这样是不对的,不信可以试一试。由于手头没有java的规范,所以作如下猜想:java的application程序,必须以public static void main(String[])开始,其

7、他不一样的都不行。到现在为止,我们设置方面只设置了PATH。1、当前路径就是指你的.class文件在当前目录下,[HelloWorld]$ javac HelloWorld.java  //这一步不会有多大问题,[HelloWorld]$ java HelloWorld      // 这一步可能就会有问题.。如果出了象开头那样的问题,首先确定不是由于敲错命令而出错。如果没有敲错命令,那么接着做:[HelloWorld]$ echo $CLASSPATH或者c:HelloWorld>echo %CLASSPATH%看看CLASSPAT

8、H环境变量是否设置了,如果设置了,那么用以下命令:[HelloWorld]$ CLASSPATH=或者c:HelloWorld> set CLASSPATH=来使它为空,然后重新运行。这次用户类路径缺省的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。