3

我在 eclipse 3.2.1 中有一个 java 项目

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

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

我怎样才能做到这一点?

~谢谢

4

5 回答 5

5

您可以尝试以下方法:

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

然后转到选项卡

Order and Export

选择(单击)您的罐子,然后按TopUp直到它位于src条目上方。

于 2013-05-09T11:55:13.013 回答
3

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

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

然后用新的设置jvm“java.system.class.loader”属性

于 2013-05-15T13:59:41.760 回答
1

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

现在 jar 和您的源文件在 System CL 中。将 JAR 文件移动到 JDK 中的 ext 文件夹。这样你就可以优先考虑系统类路径上的类而不是 jar。

于 2013-05-16T10:08:24.923 回答
1

解决方法:不要参考 .java 文件。删除 .java 文件/将其移动到不同的项目?并且不要在此引用该项目,仅引用 jar,无论是直接引用还是引用 lib 中所需版本的副本

于 2013-05-09T20:28:52.093 回答
0

如果您在不同包的类路径中有两个同名的类。在这种情况下,如果您在同一代码中使用这两个类,则需要使用其包来限定。例如,要参考Dinesh,您需要做类似的事情

com.abc.Dinesh dinesh = new com.abc.Dinesh();
于 2013-05-16T05:17:11.710 回答