问题与处理

在使用Eclipse做Java程序开发的过程中,有时从外部导入的工程可能会没有“.classpath”这个文件(尤其是从MyEclipse工程导入的时候),导致在Eclipse中查看项目存在各种问题。一个典型的现象就是本身设置的package路径起始是“com”目录,但在导入之后起始路径变成了其他的目录。

上图中Eclipse将“src”、“dist”、“libs”三个目录识别为源码的三个起始路径

在Eclipse开发的项目中,“.classpath”文件用来配置项目中的几个关键的环境路径,当遇到类似的情况时,可能不管重复导入多少次这个项目都是一样的现象,其实只需要打开“.classpath”这个文件对其中的内容进行简单的修改即可,如果该文件不存在则直接创建一个。
一般情况下,这个文件就在项目的根目录下(和.settings文件夹在同一个目录下)。
一个最简单的“.classpath”文件内容大致如下:

<?xml version="1.0" encoding="UTF-8"?>  
<classpath>  
<classpathentry kind="src" path="src"/>  
<classpathentry kind="output" path="bin"/>  
</classpath>  

这个文件的内容包括了一个Eclipse项目的两个主要目录:

  • src:项目的源码目录位置,示例中指向默认的“./src”目录,有时即便“.classpath”文件存在的情况下,也会存在类似的问题很有可能是因为这个目录被设置成错误的路径所致,这时只需修改后面的路径即可解决;
  • output:项目自动编译的“*.class”文件的输出目录,示例中指向默认的“./bin”目录。

当然,按上面的示例设置,不管这个项目的代码多么简单,这个项目都无法执行调试。因为该配置中没有设置Java程序运行所需要的基础库,这时在Eclipse里面看到项目的状态应该如下图:

虽然“dist”和“libs”两个文件夹变成了普通的文件目录,但项目源码存在报错,同时看不到“JRE System Library”这个Elcipse项目运行时必须的内容。

这个错误的原因就在于,我的“.classpath”文件中没有设置这项内容。一个简单的解决办法是在Eclipse中通过设置项目的Java Build Path来自动生成该配置。操作方法为:

  1. 打开项目的“Java Build Path”设置,选中“Libraries”选项卡;
  2. 点击“Add Library…”按钮;
  3. 选择“JRE System Library”,点击“Next”;
  4. 在接下来的页面中选择所需的JDK或JRE即可,我在开发时一般情况下使用自己安装的“JDK 1.5.0”;
  5. 点击“Finish”按钮完成添加。

完成上述操作后,重新打开“.classpath”文件可以看到其中多出了一行内容:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_22"/>
<classpathentry kind="output" path="bin"/>
</classpath>

上面kind值为“con”的那一行(即第4行)是系统自动添加的JDK运行时容器,这里的“con”也就是“container”的缩写,这一类环境除了JRE_CONTAINER之外还有其他内容,均可通过“Add Library”功能选择添加。

这样,一个Eclipse项目中与“.classpath”文件有关的错误基本就可以解决,而其他的关于依赖库引用的问题,基本就都可以通过程序界面的设置操作来解决了。

其他还可能存在的设置项目是kind为“lib”的引入接口库,不过在Eclipse中不需手动修改。

总结

“.classpath”文件定义了Eclipse项目在编译时所使用的CLASSPATH环境变量。

  • kind="src" 源文件的具体位置
  • kind="con" 项目运行的系统环境
  • kind="lib" 工程的library的具体位置信息
  • kind="output" 项目的输出目录

版权声明:本文为博主原创文章,转载请注明出处。

1,391 对 “Eclipse项目中的“.classpath”配置文件”的想法;

  1. Pingback: iyibilirdik
  2. Pingback: diabetes metformin
  3. Pingback: spinco
  4. Pingback: jeux casinos
  5. Pingback: goodrx amoxicillin
  6. Pingback: augmentin vs keflex
  7. Pingback: child porn
  8. Pingback: anal porn
  9. Pingback: child porn
  10. Pingback: child porn
  11. Pingback: porn
  12. Pingback: ananın amı
  13. Pingback: jojobet twitter
  14. Pingback: animal porn
  15. Pingback: ivermectin oral 0 8
  16. Pingback: ivermectin 0.08%
  17. Pingback: jojobet

发表评论