通过源代码确定jar文件的优先级

时间:2013-05-06 10:14:51

标签: java eclipse

我在eclipse 3.2.1中有一个java项目

我在源代码中有一个java类com.abc.Dinesh。 我还有一个jar文件,它有一个具有相同名称和包的类。

我在我的项目中导入了jar文件。但是,在我的源代码中,当我引用类Dinesh时,该类被解析为源而不是二进制版本。我想从jar中引用类文件。

我该怎么做?

〜感谢

5 个答案:

答案 0 :(得分:5)

您可以尝试以下方法:

right click on your project > Build Path > Configure Build Path...

然后转到标签

Order and Export

选择(简单点击)您的广告素材,然后按Top或仅按Up,直到它高于src条目。

答案 1 :(得分:3)

解决问题(在Eclipse内部或外部)的唯一方法是编写您自己的ClassLoader,以便在类文件上优先处理Jar文件。 :

请参阅http://kalanir.blogspot.fr/2010/01/how-to-write-custom-class-loader-to.html

然后使用新的

设置jvm“java.system.class.loader”属性

答案 2 :(得分:1)

解决方法:不要引用.java文件。删除.java文件/将其移动到另一个项目?并且不要在这个项目中直接引用那个项目,也不要引用你的lib中所需版本的副本

答案 3 :(得分:1)

类加载器的加载顺序是Bootstrap CL - > System CL - > Extended CL

现在罐子&您的源文件位于System CL中。将JAR文件移动到JDK中的ext文件夹。这样,您就可以优先考虑jars上系统类路径上的类。

答案 4 :(得分:0)

如果在不同包中的classpath中有两个具有相同名称的类。在这种情况下,如果您在同一代码中同时使用该类,则需要使用其包进行限定。例如要引用Dinesh,您需要执行类似

的操作
com.abc.Dinesh dinesh = new com.abc.Dinesh();