Java:在运行时将类添加到 Jar 存档中
我想在运行时将一些编译的类(.class 文件)添加到当前 Jar 文件中的目录(包)
我怎样才能做到这一点?
谢谢
I want to add some compiled classes (.class files) to directories(packages) in current Jar file at runtime
How can I do that?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是无法完成的 - 要更新 Jar 文件,您需要创建一个新文件并用新文件覆盖旧文件。
以下是有关如何执行此操作的示例:
This cannot be done - To update a Jar file you need to create a new one and overwrite the old one with the new one.
Below is a sample on how you would do this:
我不太确定,但我认为不可能从 JAR 文件(我们称之为 foo.jar)加载类,然后修改加载类的同一个 JAR 文件,添加一个新类并期望类加载器要找到的类。
我会考虑重构应用程序本身并使其能够动态加载类(使用 URLClassLoader 或任何其他技术),而不是尝试强制您描述的单个 JAR 行为。
I'm not quite sure but I don't think it's possible to load classes from a JAR file (let's call it foo.jar), then modify the very same JAR file from which the classes were loaded, add a new class and expect the class to be found by the ClassLoader.
I'd think about refactoring the application itself and make it able to load classes dynamically (using URLClassLoader or any other technique) than trying to force the single JAR behaviour you described.