当前位置: 首页 > 图灵资讯 > 技术篇> 关于java 的 Classpath全解

关于java 的 Classpath全解

来源:图灵教育
时间:2024-02-21 10:20:23

  java 新入门者经常对classpath感到困惑。为什么能在开发环境中运行的东东出去不好,或者在外面运行的东东进入开发环境就死了?看完我的文章,你可以无忧无虑(夸张点) :)哈哈java的优点是他是一个自动支持网络功能的东东。

  举个简单的例子,他用java使用aplication.lang.String(事实上,如果有一个程序没有使用,那就太难想象了 :)), 和com.shinechina.MyClass(我自己写的两个版本)

  这两类版本1:package com.shinechina;public class MyClass{public static void main(String args[]){String str = "版本1: hello, welcome to chinaasp java 技术";System.out.println(str);}}版本2:package com.shinechina;public class MyClass{public static void main(String args[]){String str = "版本2:hello, welcome to chinaasp java 技术";System.out.println(str);}}现在我要操作java了 com.shinechina.MyClass现在的问题可能是com.shinechina.Myclass在c:\, d:\, 甚至在阿龙老兄,javabeans兄弟,机器上也有这样的东东,里面有一些很cool的java怎么知道去哪里找呢? 他到底该怎么办?假设版本是一个 c:\mylib\com\shinechina\MyClass.Java假设版本2 d:\mylib\com\shinechina\MyClass.java注意:别忘了编译成class文件, java文件是无法执行的cd c:\mylib\com\shinechinajavac *.javacd d:\mylib\com\shinechinajavac *.java有:他先去机器的CLASPATH,假设是windows系统 c:\mylib;d:\mylib;d:\jdk1.2.2\lib\rt.jar;或unix系统 /home/local/:/usr/local/:/usr/local/jdk1.2.2/lib/rt.jar好, c:在mylib下,他找到了com目录,有戏, 再往下看,有shinechina目录,Myclassss在目录下找到.class, Ok 就是他了, 至于d:\mylib我版本2的MyClass,他不理会, 至于String,rtring是rtring.Jar压缩包将在稍后讨论他执行的结果是版本1: hello, welcome to chinaasp java 技术反过来,d盘的路径在c:之前,执行的结果是版本2: hello, welcome to chinaasp java 依次类推技术, 只有在类路径上第一个找到的才会执行,如果你想控制他执行那一个,你必须这样做:java -classpath d:\mylib;%classpath% com.shinechina.执行MyClass的结果是版本2: hello, welcome to chinaasp java 这就是技术开发环境中的实施情况, 注意一个地方指定的路径,开发环境往往不读系统路径, 这就是为什么东东在外面跑来跑去,进入开发环境就死了。比如jbuilder, jdevoloper从菜单projecttter->project properties...->paths标签->Add...->添加定义好的library点ok或neww->输入name和claspath->ok这个东西被添加到classpath中(运行时可以在message中使用 在visualAgeew中看到) for java , 点中你要操作的类别->右击鼠标选择特性->类路径标签1。->编辑->全选,好的,开发环境中的所有类别都可以找到2。->编辑->全选,好的,开发环境中的所有类别都可以找到2。->立即计算(只选择你需要的类别, 如果使用class.通过程序显式装载的forname等类别,需要自己从编辑中手工进入, 开发环境的每一个能力都可以帮助你计算出来。如果内存没有问题,直接编辑->全选更方便喊)3。假如你的类不想引入开发环境,点中添加额外的路径,编辑(以下一个), 我不喜欢, 不详细介绍高手的话,直接用jdk, 所以只好麻烦你或者加入系统claspath(unix)$CLASSPATH), 或者编译操作时显式指示classpath下面介绍一个初学者最容易犯的错误。假设版本在上面一节中 c:\mylib\com\shinechina\MyClass.编译java后c:\mylib\com\shinechina\MyClass.class如何指定classpath?常见问题1。c:\mylib\com\shinechina\2。c:\mylib\com\shinechina\2。c:\mylib\com\正确1。c:\mylib\2。