myeclipse中的classpath .

博客分类:

 

myeclipse中的classpath是一个很重要的问题java

myeclipse的在查找的时候都是按照其查找,并且myeclipse有一个专门的文件来保存classpath的信息,这也是别人的项目拷贝的时候须要的一个重要文件,否则这个项目要导入到本身的myeclipse中就会发生错误,此时就只能是手工来编写这个文件,myeclipse的classpath文件就是项目根目录下的“.classpath”文件,其格式以下:web

Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <classpath>  
  3.     <classpathentry kind="src" path="src"/>  
  4.     <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>  
  5.     <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER"/>  
  6.     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>  
  7.     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>  
  8.     <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>  
  9. </classpath>  

 

<classpath>... ...</classpath>    这个标签中存放的即是classpath的信息,它通常包含如下五种形式:tomcat

 

1.<classpathentry kind="src" path="src"/>服务器

 

          对应的是source folder类型的目录,kind---表示这个classpath的类型,path表示在项目中的路径,path使用根目录的相对路径(相对.classpath文件自己的相对路径) ,myeclipse项目中的src自己就是一个source folder,因此它会自动写入这个文件中,若是本身手动创建了一个source folder,这个folder也会写入这个文件,形式就是以上形式eg.在项目基础上新建一个test的source folder,就会就会成为这样:  <classpathentry kind="src" path="src"/>  eclipse

        <classpathentry kind="src" path="test"/> jsp

 

 

二、<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>测试

 

 这句是表示程序的运行环境 kind="con"---表示classpath的类型,con便是container,就是程序运行的容器,或者就说是运行环境也OK,它其实是在Myeclipse最初的时候要配置installed JREs中指定(通常状况下咱们指定的是JDK),可是这里实际使用的是JDK下的JRE中的jar包,就是JDK_HOME/jre/lib就是对应的这条语句ui

 

 三、<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER"/>spa

 

      这句是kind="con"固然和上条同样,是表示运行时的容器,通常状况下是java web项目才会有,它是包含了J2EE服务器要使用到的一些jar包,这个目录中的jar包是其中最特殊的,那就是它不会在部署项目的时候部署到服务器上去,由于myeclipse认为这样的jar包是服务器应该有的,因此这里有时候会出现问题,就是开发的时候不出现问题,可是部署以后会出错,就是有的服务器有的jar包并无提供,好比tomcat(由于tomcat并非专业的web服务器,它只是一个轻量的web容器),这就要区分好开发环境和运行环境  。xml

 

4.<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>

 

这条语句kind="lib",对应的是classpath中的库文件,path指定库文件的路径,一样是相对与项目根目录的相对路径  

 

五、<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>


这条表示项目的输出目录,整个以前定义的classpath不管是kind='src",kind="con",kind="lib",在编译后都会进入到这个目录中来,在java web中也就是WebRoot/WEB-INF/classes。一样使用的path是相对项目根目录的相对路径(相对.classpath文件自己的相对路径),可是因为J2EE部分的是自己要求web 服务器自己要有那些jar包,因此那个例外不会进行拷贝 

 

总结

kind=”src" ----对应source folder目录
kind="con"--项目的容器,通常当是java web项目的时候会有两个
kind="lib"---项目中使用到的库文件
kind='output"--输出目录,最终编译后相关文件的目标目录,myeclipse会自动完成相关的拷贝

 

 

实践: 使用myEclipse 9做为IDE,下载一个web工程,编辑发现缺乏servlet.jar、jsp.jar,部署到Tomcat能正常运行,由于Tomcat 自带了这几个包,只是在开发环境找不到,打开工程-》property-->java build path-->libray

发现里面有一项:melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_6_CONTAINER 里面没有jar包,查上面资料,发现这个目录就是我要找的东西,只在开发环境中使用,部署的时候不会拷到tomcat的目录,因此要为这个目录增长须要的jar包,反复测试,发现这个目录的jar包没有办法增长。换思路,这个是工程里有的路径,而个人myEclipse里没有这个路径,因此没有jar包,那么换成myEclipse有的环境不就好了。

点击 add library 按钮--》myEclipse library -->j2EE 1.5 librariesu   问题解决。

相关文章
相关标签/搜索