java Classpath全解(转)[@more@]java 的新入门者对classpath往往比较困惑,为何在开发环境中能运行的东东出去就不好,或在外面运行的东东挺溜的进了开发环境就死菜,烦死了!

看完俺这篇文章包您万事无忧(夸张点吧) :)呵呵

java的优点就是他是一个自动支持网络功能的东东,举一个简单例子来将

比方有一个Application他用到了java.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:mylibcomshinechinaMyClass.java

假定版本二在 d:mylibcomshinechinaMyClass.java

注意:不要忘了编译成class文件吆, java文件是不能执行的

cd c:mylibcomshinechina

javac *.java

cd d:mylibcomshinechina

javac *.java

有了:

他先到机器的CLASSPATH去找

假设是windows系统 c:mylib;d:mylib;d:jdk1.2.2lib

t.jar;

或unix系统 /home/local/:/usr/local/:/usr/local/jdk1.2.2/lib/rt.jar

好, c:mylib下他找到了com目录,有戏, 又往下找又有shinechina目录,目录下找到了MyClass.class, Ok 就是他了, 至于d:mylib我的版本2的MyClass他就不理会了, 至于String是在rt.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从菜单project->project properties...->paths标签->Add...->添加定义好的library点ok或者new->输入 name和classpath->ok

这个东东就被添加到了classpath中(运行时可在message view中看到)

再比如说visualAge for java , 点中你要运行的类->鼠标右击选中特性->类路径标签1。->编辑->全选,好,开发环境中的所有类都能找到了

2。->立即计算(只选中你需要的类, 如果有用class.forName之类通过程序显式装载的类的话,需要自己从编辑中手工家入了, 开发环境每能力帮你算出来了,如果内存没有问题的话,直接编辑->全选更方便吆)

3。如果你的类并不想引入开发环境的话,点中添加额外路径,编辑(下面的一个), 我不喜欢这样, 就不详细介绍了

高手的话,直接用jdk, 那么只好麻烦你要么加到系统classpath中(unix下为$CLASSPATH), 要么编译运行时显式指明classpath

下面介绍一个初学者最容易犯的错误

还以上节介绍的例子

假定版本一在 c:mylibcomshinechinaMyClass.java

编译后c:mylibcomshinechinaMyClass.class

怎么指定classpath呢

常见毛病

1。c:mylibcomshinechina

2。c:mylibcom

正确

1。c:mylib

2。c:mylib

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10617542/viewspace-958044/,如需转载,请注明出处,否则将追究法律责任。

java classpath详解_java Classpath全解(转)相关推荐

  1. java虚拟机类加载机制与反射全解

    java虚拟机类加载机制与反射全解 引子: 开门见山,先来个经典面试题:(如果你已经懂了,那么你可以离开了,如果你一脸懵逼,那么请好好看本文,理解透彻很有好处!) class SingleTon {p ...

  2. Echarts数据可视化series-bar柱形图详解,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  3. Java学习日报—JVM垃圾回收全解—2021/11/26

    目录 1.1 确定垃圾对象 1.1.1 引用计数法 1.1.2 可达性分析法 1.2 引用 1.2.1 宣告对象死亡 1.3 方法区回收 1.3.1 回收废弃常量 1.3.2 回收无用的类 1.4 常 ...

  4. java垃圾回收算法超详细全解

    目录 一.开始 垃圾标记阶段:对象存活判断 垃圾清除阶段 二.垃圾标记阶段算法--引用计数法 循环引用 证明java未使用引用计数算法 小结 三.垃圾标记阶段算法--可达性分析算法(根搜索算法.追踪性 ...

  5. java支付宝rsa2签名_JAVA RSA签名 解签(利用支付宝封装的函数)

    package com.mlgd.api.util; import com.alibaba.fastjson.JSON; import com.alipay.api.AlipayApiExceptio ...

  6. ECharts公共组件:title详解、 tooltip详解、toolbox详解、legend详解、dataZoom详解、visualMap全解...

    1. Title mytextStyle={ color:"#333",                           //文字颜色 fontStyle:"norm ...

  7. java 数据容器 有序_java容器-全览

    1.Collection全览-非线程安全的实现类 接口简介 Iterable:迭代器接口,用于遍历数据.foreach或者iterator. Collection:集合,java容器大部分集合的父类接 ...

  8. java 对变量加锁_Java最全锁剖析:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁...

    乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用. 1.乐观锁 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会 ...

  9. Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

最新文章

  1. 一个97年的IT人创业历程中的总结和感悟
  2. 看图理解scrollTop,scrollLeft,clientWidth,clientHeight,offsetWidth,offsetHeight
  3. Boost:aligned delete对齐删除的测试程序
  4. Spring Aware接口
  5. 致谢!LF AI Day
  6. javascriptjquery 判断滚动到页面底部
  7. jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )...
  8. openssl创建私有ca
  9. 海致星图2022校招算法笔试题
  10. UI设计进阶干货|切图命名
  11. 网络流20+4题解题报告(已更前20题)
  12. 语音情感识别常见的声学特征
  13. OOA/OOD/OOP细讲
  14. 将列表按字母排序如通讯录
  15. Windows下使用GitHub Pages搭建hexo博客详细教程以及Next主题超全配置
  16. 杰里之手表开发之HRS3300 demo wristband test report V5.0【篇77】
  17. 喜报丨驭势科技荣获工信部人工智能产业创新揭榜优胜单位
  18. 快速恢复三菱M70,M80绝对位置。驱动电池没电丢零点后,重 设零点一时爽,要调换刀点和分中对刀时可就呵呵呵了
  19. Solution for EPMA Server Service startup issue in EPM 11.1.2.4.0
  20. 东南计算机专业课,2018年东南大学计算机935考研真题(大题)回忆全

热门文章

  1. Ubuntu 20.04 安装CUDA11.1 和cudnn 8.0.5
  2. GitLab CI简单示例
  3. ViewPager——基础知识和PagerAdapter必须重写的四个方法
  4. 使用AndroidStudio时 R标红的一些问题总结
  5. idea 全部报错找不到包
  6. zoj 3870 Team Formation
  7. NOIP 2000 进制转换
  8. 201521123083《Java程序设计》第11周学习总结
  9. Redis基础学习(四)—Redis的持久化
  10. hdu1520 (树形dp)