我得到了一个被很多客户使用的Java产品。该产品作为 jar 添加到客户(例如想要使用其产品来满足其需求的 XYZ 公司)代码库中并独立工作。它是一个独立的产品,所有客户端项目都依赖于(maven 依赖)这个产品(这又是几个 Java 项目,捆绑为一个带有许可证的 jar)
现在我的情况是让引擎使用其类路径之外的类。它是一个客户端类,我不想将该类移至产品代码库并将其保留在外部,但仍想使用它。
只是为了确认我测试了它,它说未按预期找到该类。我能想到的一个选择是将这些特定的类打包并将其添加到我的产品的类路径中
他们还有其他更好的想法吗?
最佳答案
我认为你有三个选择(编辑 - 更多细节):
使用
URLClassLoader
从文件系统上的文件加载类:使用反射创建类:
您仍然需要类位于类路径中,或者您需要通过文件系统加载它(选项 1),see this .
中间方式解决方案:您可以向独立产品添加接口(interface),然后使用反射创建实现类;我从未在生产中这样做过,我只是测试了代码并且它有效:see this question
关于Java - 加载类路径之外的类。有什么选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286379/