【问题标题】:Can I reload Java Class from another package from an external JAR file?我可以从外部 JAR 文件中的另一个包重新加载 Java 类吗?
【发布时间】:2021-02-27 22:09:40
【问题描述】:

我有一个实施要求,我不确定它是否可能。

我了解类加载器可以帮助动态地重新加载类。我可以使用类加载器,在单独的 java 项目中实现功能,然后在现有的 java 项目中使用这个 jar 来替换该项目中的现有类。

目标是不修改现有类中的代码。但是,通过证明 jar 中的新代码,是否应该用 JAR 文件中的新类动态替换现有类?

【问题讨论】:

  • 是的,你可以。您面临的具体问题是什么?
  • 我不知道从哪里开始。任何线索或示例将不胜感激?
  • 网上有很多类加载器示例。您可以编写自己的测试类加载器,注册它并从那里开始。

标签: java classloader


【解决方案1】:

这应该会给你更好的主意:Using a custom ClassLoader to override existing implementations of classes

在您的新 jar 中创建一个新的加载程序,并在运行应用程序时使用 -Djava.system.class.loader=my.package.path.NewClassesLoader。在加载器中从新类而不是旧类中获取字节码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2010-09-29
    • 2013-02-10
    • 2016-04-10
    • 2011-10-22
    相关资源
    最近更新 更多