Java覆盖类加载项目类而不是Jar类

时间:2015-06-11 02:29:14

标签: java jar classloader

我有一个包含我想要修改的类的jar。出于某种原因,我不想重新编译和更新Jar。所以我要做的是在项目中为该类重新创建一个完全限定名,并将我的代码放入其中,但我不知道如何确保JVM加载我的项目类而不是Jar类。 我查看了一些帖子,但它们是关于如何将Jar类加载到项目中,而不是相反。

1 个答案:

答案 0 :(得分:2)

通常,您需要做的就是确保您的类位于包含您尝试覆盖的代码的jar之前的类路径中。

如果您从命令行运行(将:替换为;以便在Windows上执行):

java -cp myproject.jar:their.jar com.package.Main

如果您正在使用Eclipse,请右键单击项目>构建路径>配置Build Path ...,然后选择“Order and Export”选项卡,确保项目源目录位于列表中覆盖的jar上方。