《JAVA类路径说明新手必读.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《JAVA类路径说明新手必读

一、类路径 ? (class path) 当你满怀着希望安装好java,然后兴冲冲地写了个“hello world”,然后编译, 运行,就等着那两个美好的单词出现在眼前。可是不幸的是,只看到了“Cant find class HelloWorld”或者“Exception in thread "main" java.lang.NoSuchMethodError: main。 为什么呢?编译好的class明明在呀。 我们一起来看一看java程序的运行过程。我们已经知道java是通过java虚拟机来解释运行的,也就是通过java命令—javac编译生成的.class文件就是虚拟机要执行的代码, 称之为字节码(bytecode),虚拟机通过classloader来装载这些字节码,也就是通常意义上的类。这里就有一个问题,classloader从哪里知道java本身的类库及用户自己的类在什么地方呢?或者有着缺省值(当前路径) ,或者要有一个用户指定的变量来表明,这个变量就是类路径(classpath),或者在运行的时候传参数给虚拟机。这也就是指明classpath的三个方法。编译的过程和运行的过程大同小异,只是一个是找出来编译,另一个是找出来装载。实际上java虚拟机是由java luncher初始化的,也就是java (或java.exe) 这个程序来做的。虚拟机按以下顺序有哪些信誉好的足球投注网站并装载所有需要的类: 1、引导类:组成java平台的类,包含rt.jar和i18n.jar中的类。 2、扩展类:使用java扩展机制的类,都是位于扩展目录($JAVA_HOME/jre/lib/ext) 中的.jar档案包。 3、用户类:开发者定义的类或者没有使用java扩展机制的第三方产品。你必须在命令行中使用-classpath选项或者使用CLASSPATH环境变量来确定这些类的位置。 我们在上面所说的用户自己的类就是特指这些类。 这样,一般来说,用户只需指定用户类的位置,引导类和扩展类是“自动”寻找的。那么到底该怎么做呢?用户类路径就是一些包含类文件的目录,.jar, .zip文件的列表,至于类具体怎么找,因为牵扯到package的问题,下面将会说到,暂时可认为只要包含了这个类就算找到了这个类。根据平台的不同分隔符略有不同,类unix的系统基本上都是“:”,windows多是“;”。其可能的来源是: * ? “. ”, 即当前目录,这个是缺省值。 * ? CLASSPATH环境变量,一旦设置,将缺省值覆盖。 * ? 命令行参数-cp或者-classpath,一旦指定,将上两者覆盖。 * ? 由-jar参数指定的.jar档案包,就把所有其他的值覆盖,所有的类都来自这个指定的档案包中。由于生成可执行的.jar文件,还需要其他一些知识,比如package,还有特定的配置文件,本文的最后会提到。可先看看jdk自带的一些例子。 我们举个HelloWorld的例子来说明。先做以下假设: * ? 当前目录是/HelloWorld(或c:\HelloWorld, 以后都使用前一个) * ? jdk版本为1.2.2 (linux下的) * ? PATH环境变量设置正确。(这样可以在任何目录下都可以使用工具) * ? 文件是HelloWorld.java,内容是: ? ? public ? class ? HelloWorld ? ? { public ? static ? void ? main(String[] ? args) { System.out.println( Hello ? World!\n ); System.exit(0); } } 首先这个文件一定要写对,如果对c熟悉的话,很有可能写成这样: public ? static ? void ? main(int ? argc,String[] ? argv) { .... } 这样是不对的,不信可以试一试。由于手头没有java的规范,所以作如下猜想: java的application程序,必须以public ? static ? void ? main(String[])开始,其他不一样的都不行。 到现在为止,我们设置方面只设置了PATH。 1、当前路径就是指你的.class文件在当前目录下, [HelloWorld]$ ? javac ? HelloWorld.java ? ? //这一步不会有多大问题, [HelloWorld]$ ? java ? HelloWorld ? ? ? ? ? ?// ? 这一步可能就会有问题.。 如果出了象开头那样的问题,首先确定不是由于敲错命令而出错。如果没有敲错命令,那么接着做: [HelloWorld]

文档评论(0)

yingrong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档