.classpath文件分析

27 篇文章 0 订阅

eclipse中需要关联到第三方JAR文件时,可以直接添加JAR文件,也可以增加环境变量的形式来添加JAR文件,当然原理都是一样的,都是引用 JAR文件,除了可以直接右点击工程,属性,在”Java Build Path”中添加外,其实还可以直接编辑工程目录下的 .classpath这个文件,这个文件即是记录工程中的一些环境变量及工程中文件的输出目的的,此文件结构大至如下:

< ?xml version="1.0" encoding="UTF-8"?>
< classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="output" path="bin"/>
< /classpath>

其中,src是源文件输出目的的,output是类文件输出目的的,con是eclipse运行时所需的核心包,var是通过环境变量的形式增加的一些 JAR包,lib是直接加入的JAR包,所以需要加入一些第三方的JAR文件时,直接编辑此文件即可,eclipse不需重启,工程即可生效.
有关说明:
有时从别的工程导入到另一个工程时,工程名旁边有一个红插,而这时可能有很多人认为是某个地方导入的不对,或有些文件没导入完全,当然也有这个可能,但大 多数是因为原工程中引入了一些环境变量,而导入到本机上的eclipse时,环境变量路径发生了变化,eclipse找不到相关的JAR文年,所以工程名 旁边有一个红插,而且这时当新建类,或编辑类时,类文件都不会编绎的,甚至有人认为此时是eclipse不能自动编绎了,查看自动编绎属性时又是自动编绎 的,换到其他工程时又可以自动编绎,所以可能一时找不到原因,其实是.classpath文件中的一些环境变量的路径不正确导致的,去掉或指向正确的路径 即可.

添加进的项目有可能会出现

Log Cat的信息是
java.lang.RuntimeException: Unable to instantiate application com.teleca.jamendo.JamendoApplication: java.lang.ClassNotFoundException: com.teleca.jamendo.JamendoApplication in loaderdalvik.system.PathClassLoader@43598650
Caused by: java.lang.ClassNotFoundException: com.teleca.jamendo.JamendoApplication in loaderdalvik.system.PathClassLoader@43598650
的错误。改下.classpath就可以了

 

 

eclipse工程中.classpath文件含义:
下面是一个.classpath文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<!-- 源码目录 -->
<classpathentry kind="src" path="src"/>

 


<!-- 工程引用外部lib目录(最好用相对路径) -->
<classpathentry kind="lib" path="G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar"/>
<classpathentry kind="lib" path="lib/xstream-1.3.1.jar"/>
<classpathentry kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>
<classpathentry kind="lib" path="lib/commons-logging.jar"/>
<classpathentry kind="lib" path="lib/htmlparser.jar"/>
<classpathentry kind="lib" path="lib/jdom.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.8.jar"/>
<classpathentry kind="lib" path="lib/lucene-1104.jar"/>
<classpathentry kind="lib" path="lib/mysql-connector-java-5.0.0-beta-bin.jar"/>
<classpathentry kind="lib" path="lib/xml-apis.jar"/>
<classpathentry kind="lib" path="lib/nekohtml.jar"/>
<classpathentry kind="lib" path="lib/xalan.jar"/>
<classpathentry kind="lib" path="lib/xercesImpl.jar"/>
<classpathentry kind="lib" path="lib/js.jar"/>
<classpathentry kind="lib" path="lib/cobra.jar"/>
<classpathentry kind="lib" path="lib/jdmkrt.jar"/>

<!-- JDK编译时容器 -->
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_06"/>
<!-- class 目录 -->
<classpathentry kind="output" path="bin"/>
</classpath>

说明:
1、<classpathentry kind="src" path="src"/>
含义:本工程的源码所在地路径--》在当前工程路径下的src文件下
2、<classpathentry kind="lib" path="G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar"/>
含义:本工程所要应用的外部jar包,具体路径是G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar这里利用的是绝对路径
注意:我们不要应用绝对路径,这样的话我们load工程的时候就会出现找不到jar包的现象我们要用<classpathentry kind="lib" path="lib/cobra.jar"/>
这种相对路径的格式,都用相对路径,那么当我们利用eclipse从文件load一个已经存在的工程的时候就不用在重新引入jar包了
3、<classpathentry kind="output" path="bin"/>
含义:本工程编译后的类文件存放到当前工程路径下的bin目录下

 

Eclipse .classpath文件浅谈:

<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
每个新建java工程(Project)都默认存在的。

<classpathentry kind="src" ōutput="km230/apitest/classes" path="km230/apitest/src"/>
指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 源文件路径path, output为这条路径中源文件编译以后class文件的输出路径。

<classpathentry kind="src" path="km230batch/src"/>
指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 源文件路径path, 编译以后class文件的输出路径为默认输出路径。

<classpathentry kind="output" path="km230server/approot/WEB-INF/classes"/>
指定编译以后class文件的默认输出路径, 对应工程属性Java build path中Source项中的default output path, kind="output"指明为默认class输出路径, path为相应输出路径。

注意: 这一条在文件中有且只能有一条(不可能同时出现两个默认吧?).

<classpathentry kind="lib" path="km230/lib/Notes.jar"/>
指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项, kind="lib"指明为库文件或目录, path为库文件或目录位置。

注意: 当指定库文件时(非库目录, 通常是jar包, 好像zip也可以, 不知道是否还有其它), 应当包含文件名。

<classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.0.0/src/org.junit_3.8.1/junitsrc.zip"/>
指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项, kind="var"指明带有全局编译路径中设置的变量(Window->Prefrences->Java->Build Path->Classpath Variables), 如上面的ECLIPSE_HOME, path为这个变量目录下的库文件(同样通常是jar包, 好像zip也可以, 也不知道是否还有其它)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值