1

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

现在我决定改变我的班级。因此,由于我的类被预编译到他的 jar 中,他的类(我仍然需要使用)使用我的旧类。我的同事走了,我不知道他是怎么把所有东西都打包成一个jar文件供我使用的。

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

4

4 回答 4

2

In Eclipse i think it should be enough to export your code as jar file.

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

So basically you get the old jar, extract, load as project in eclipse and export as jar file. And you're done.

于 2012-11-05T19:59:37.713 回答
2
  • 对于指定的类文件
jar -uvf0 <YOUR_JAR_NAME>.jar io/some/package/service/TestService.class
  • 对于整个目录。
jar -uvf0 <YOUR_JAR_NAME>.jar io/some/package/service/
于 2021-01-29T03:57:46.463 回答
0

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

于 2012-11-05T19:35:58.477 回答
0

您可以提取 .jar 文件并更改已编译的类。

于 2012-11-05T19:36:13.827 回答