我的jbpm.jar中有一个名为org.jbpm.task.Comment的类。覆盖jar中的java类
但是,这是一个CR1版本,并且类中有一个错误,我希望我的应用程序覆盖。
在我的项目下有一个名为com.jbpm.task的评论,并且即使在其他的jar里面都会引用我的评论,这样好吗?
我的jbpm.jar中有一个名为org.jbpm.task.Comment的类。覆盖jar中的java类
但是,这是一个CR1版本,并且类中有一个错误,我希望我的应用程序覆盖。
在我的项目下有一个名为com.jbpm.task的评论,并且即使在其他的jar里面都会引用我的评论,这样好吗?
JAR文件只是ZIP文件。使用像WinZip这样的工具从JAR中提取所有文件,用你的文件替换.class文件,使用例如文件重新创建ZIP文件。 WinZip,将其重命名为.jar,覆盖原始JAR文件。
如果您没有原始源文件需要更正.class文件,那么请使用Java反编译器为该类生成.java源文件。它会缺少原始的评论等,但它将足以纠正错误(例如,不正确的空检查,因为我在某些产品中有几次)。
我建议使用7zip之类的Zip实用工具来打开jar文件并将jar文件中的类替换为最新的一个。
你将不得不确保你的jar被加载到bpm.jar之前。在某些JRE中,罐子在同一位置按字母顺序装入。
那么行为是不能保证的。有时候我会因为这个而遭遇不好的经历。看看下面的SO线程。如果你的目标是不同的JVM实现,那么这可能是一个问题。
我不救我归类在罐子里 - 这是在Web应用程序。 – Dejell 2011-01-10 16:00:10