MyEclipse classpath解析

  今儿说起这个呢,缘于公司的所有项目业务(Portlet EC、CRM、OA..)都放在了同一个工程下面,由于各项目业务的不断扩大,导致整个工程异常的庞大,并且到VSS库里拿代码呢也要拿些与本项目无关的许多代码,由于没有拆分,造成整个工程代码的拥肿。

  最近呢,公司就对各个组里的代码进行了拆分,共用一个公共模块(整个架构的必备功能),然后各个组拿各个组的代码,互不干扰。真的是很好的做法。

  当同事今天把项目拿下来的时候,发现了不少的问题,项目启动的时候,报一些配置文件找不到对应的class文件,还有就是代码Debug不了,对代码打上断点,总是会跳出找不到资源的错误,这下可郁闷了,都在啊!

  查看tomcat的webapps目录,发现WEB-INF下没有对应的class文件,却多了每个工程组里的打包jar文件,原来如此呀,现在代码不编译到class目录下了,跑到jar包里了,难怪呢!

 OK,我们在用MyEclipse建工程的时候呢,只知道下一步,下一步的,其中的具体含义我们有时也略知一二,但是具体的这些操作影响配置在哪里呢,.classpath告诉你。

 现截取几个典型的classpath元素如下图所示:

<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="lib" path="WebRoot/WEB-INF/lib/spring-aop.jar" 
	sourcepath="E:/spring-framework-2.5.5/dist/spring-sources.jar"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="reflib/portal.jar"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>

  1) 该项表示源文件,并指明了源文件的路径;
   2) 该项表示库文件或目录,并指明了相应的jar存放路径;
   3) sourcepath,对了,就是存放的对应该jar包的源文件路径了;

   4) eclipse中project相关的配置,每个项目中的必有项,当然了,还有别的没有列出,具体看.classpath文件;

   5) 关键的问题所在,不加载项目中的新编译的class文件就是因为它走这个jar;

   6) 该项表示编译路径,指明了*.java文件被编译成*.class文件后的存放路径。该项为默认存放路径,也意味着在.classpath文件中只能存在一项kind="output"。

   以上分别对应Java Build Path相对应的Source 和 Library项,可以根据需要进行调整。

   原来是这样呀,OK,明白了,现调整.classpath ,去掉第5)点,问题搞定。 

 

  2011-12-14更新

    虽然种种的前辈告诉我们,IDE只不过是我们编程人员的一种工具罢了,跟学习语言本身没有直接联系!不应该把重点放在IDE上面,这句话我不敢妄自菲薄的说对错。可现实是,有很多的事情,你还就得把这个前奏工作做好,不然你都没有办法开展工作。

    简简单单的用一个@Override注解却报错,为什么?!我想很多新手都为此困惑过,查了多久都不知道为什么,吭爹吧!

   这实际上是有个关于JDK5.0和JDK6.0的关于@Override的小小区别:

      5.0:@Override标注只能用于父类与子类之间方法覆盖的指示,不能用于实现类和接口之间方法的指示!
      6.0:@Override标注既可以用于接口和实现类之间的方法指示也可以用于父子类之间方法覆盖的指示!
   Eclipse里之所以报错,就是因为Java Complier的选择问题(果然选的是5.0)。选择到6.0,重新编译,报错解决!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值