Java 中的 ClassPath 和 Package.docVIP

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

Java 中的 ClassPath 和 Package 前言: ???? 由于这两个问题新手问得较多, 且回答比较零散, 很难统一整理, 所 以就直接写了一篇, 还请大家见谅. 正文: 一, 类路径 (class path) ???? 当你满怀着希望安装好了 java, 然后兴冲冲地写了个 hello world,然后编译, 运行, 就等着那两个美好的单词出现在眼前, 可是不幸的是, 只看到了 Can#39;t find class HelloWorld 或者 Exception in thread main java.lang.NoSuchMethodError: ma in. 为什么呢? 编译好的 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) ???? { ????????

文档评论(0)

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

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

1亿VIP精品文档

相关文档