Java 覆盖 class 以加载项目 Class 而不是 Jar class
Java override class to Load project Class instead Jar class
我有一个 jar,其中包含我想要修改的 class。出于某种原因,我不想重新编译和更新 Jar。所以我所做的是在我的项目中为 class 重新创建一个完整的限定名称,并将我的代码放入其中,但我不知道如何确保 JVM 加载我的项目 class 而不是罐子 class。
我浏览了一些 post 但它们是关于如何将 Jar class 加载到项目中,而不是相反。
通常您需要做的就是确保您的 class 位于包含您要覆盖的代码的 jar 之前的 class 路径上。
如果您是 运行 从命令行(将 :
替换为 ;
以在 windows 上执行):
java -cp myproject.jar:their.jar com.package.Main
如果您使用的是 Eclipse,请右键单击项目 > 构建路径 > 配置构建路径...,然后 select "Order and Export" 选项卡并确保您的项目源目录位于上方您在列表中覆盖的 jar。
我有一个 jar,其中包含我想要修改的 class。出于某种原因,我不想重新编译和更新 Jar。所以我所做的是在我的项目中为 class 重新创建一个完整的限定名称,并将我的代码放入其中,但我不知道如何确保 JVM 加载我的项目 class 而不是罐子 class。 我浏览了一些 post 但它们是关于如何将 Jar class 加载到项目中,而不是相反。
通常您需要做的就是确保您的 class 位于包含您要覆盖的代码的 jar 之前的 class 路径上。
如果您是 运行 从命令行(将 :
替换为 ;
以在 windows 上执行):
java -cp myproject.jar:their.jar com.package.Main
如果您使用的是 Eclipse,请右键单击项目 > 构建路径 > 配置构建路径...,然后 select "Order and Export" 选项卡并确保您的项目源目录位于上方您在列表中覆盖的 jar。