Java - 在类路径之外加载一个类。有什么选择

时间:2014-06-18 13:05:03

标签: java maven dependencies classpath classloader

我得到了许多客户使用的Java产品。该产品作为jar添加到客户端(例如XYZ公司,他们希望使用他的产品满足他们的需求)代码库并独立工作。它是一个独立的产品,所有的客户端项目都依赖于(maven依赖)这一个产品(这也是一个捆绑为一个带有许可证的jar的java项目)

现在我处于一种使引擎在类路径之外使用类的情况。它是一个客户端类,我不想将该类移动到产品代码库中并将其保留在外部但仍希望使用它。

只是为了确认我对它进行了测试并且说它没有找到预期的课程。我能想到的一个选择是jar那些特定的类,并将它添加到我的产品的类路径

他们还有其他更好的想法吗?

1 个答案:

答案 0 :(得分:2)

我认为你有三种选择(编辑 - 更多细节):

  1. 使用URLClassLoader

    从文件系统上的文件加载类

    see this answer;

  2. 使用反射创建类:

    您仍然需要将类放在类路径中,或者您需要通过文件系统(选项1)see this加载它。

  3. 中途解决方案:您可以为独立产品添加界面,然后使用反射创建实施类;我从来没有在制作过程中这样做,我只测试了代码并且它有效:see this question