我想将一些类文件添加到rt.jar
。我怎么能这样做?
答案 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)
请参阅链接了解详情:
答案 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附带的源代码后添加调试信息。人们可能也想修补一些东西。当然,这些都是供自己使用的。