如何更新rt.jar文件?

时间:2012-08-25 05:32:54

标签: java jar

我想将一些类文件添加到rt.jar。我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

你的问题表明你对java平台有一些误解。

首先,你需要知道rt.jar是什么以及它做了什么:

rt.jar是包含java运行时所需的所有类的jar。因此,它的名称是 rt .jar

现在你知道了,你需要知道你的java程序是如何运行的:

您的java程序,所有的jar和类都由java虚拟机执行。

因此,您可以看到您编写的代码& java运行时使用的rt.jar是完全独立的,应保持不变。

如果您需要某些功能,则应将其添加到您的jar中。

答案 1 :(得分:1)

不要更新它。你为什么要更新它?

好吧如果你想要更新它,我知道一种方法,你可以在winrar中打开jar文件并在存档中粘贴更新的.class文件。但你的罐子可能会处于不一致的状态。这样做需要您自担风险。

答案 2 :(得分:1)

您可以使用此命令:

jar uf jar-file input-file(s)

请参阅链接了解详情:

java.sun.com/docs/books/tutorial/deployment/jar/update.html

答案 3 :(得分:1)

更新rt.jar的最佳方法是为Java安装更新版本。 ;)

如果要在新包中添加自己的类,可以将它们添加到类路径中的jar中。这比改变现有的类更好。

如果唯一的选择是更改现有类,则可以在jar中创建一个“补丁”,并将其添加到引导类路径中,或者将jar添加到lib/endorsed目录中。我不会为生产代码执行此操作,仅用于您自己的测试。

答案 4 :(得分:0)

我已尝试使用u和0(即零)选项的jar.exe,并且最接近看起来像原始rt.jar文件但是如果我已经更新了JDK' s JRE的rt.jar我在更新后遇到编译和震动的问题。不明白为什么!简单地使用JRE运行程序似乎有效。

我也试过-Xbootclasspath / p但是无法让它工作。

查看Replace a class within the Java class library with a custom version我发现将更改后的rt.jar分发给您的客户存在法律问题,即使您可以弄清楚如何正确地执行此操作。所以我打算在该页面中获取建议并创建一个java代理。这显然是合法的并且有效。

一个人可能想要修改rt.jar的一个原因是在使用-g选项编译JDK附带的源代码后添加调试信息。人们可能也想修补一些东西。当然,这些都是供自己使用的。