如何替换jar文件中的类文件?

时间:2012-11-05 19:29:21

标签: java jar

我的一位同事写了一堂课。他的班级使用我的班级。他没有告诉JVM每次编译类时我的课程都在哪里,而是将这两个类打包成一个jar文件,我可以这样运行:java -jar hisclass.jar

现在我决定改变班级。因此,由于我的课程被预先编译到他的jar中,他的课程(我仍然需要使用)使用我的旧课程。我的同事离开了,我不知道他是如何将所有东西打包成jar文件供我使用。

现在,当我尝试java -jar hisclass.jar时,当他的类调用我的类时,它会调用我的类的旧版本,这会产生错误,因为我的类的旧版本不再正常工作。任何人都可以帮助我将他的课程重新编译成一个罐子或者只更新我的那个吗?

4 个答案:

答案 0 :(得分:2)

在Eclipse中,我认为将代码导出为jar文件就足够了。

http://viralpatel.net/blogs/create-jar-file-in-java-eclipse/

所以基本上你得到旧jar,解压缩,在eclipse中作为项目加载并导出为jar文件。 你已经完成了。

答案 1 :(得分:1)

  • 用于指定的类文件
jar -uvf0 <YOUR_JAR_NAME>.jar io/some/package/service/TestService.class
  • 对于整个目录。
jar -uvf0 <YOUR_JAR_NAME>.jar io/some/package/service/

答案 2 :(得分:0)

我不确定你是否能逃脱它,但你可能只想尝试将你的类编译成jar文件,然后在WinRAR等压缩代理中打开他的jar文件,然后简单地覆盖旧jar包含在他的jar文件中的文件和新编译的版本。一种更好的方法(如果他的类没有被混淆)将是在Java IDE中打开他的jar文件,并从中创建一个新项目。然后在同一IDE中的项目中引用您从jar文件创建的项目。这样,您可以在同一环境中对两者进行更改,并在更改后更容易编译代码。

答案 3 :(得分:0)

您可以解压缩.jar文件并更改已编译的类。