Java应用程序加载外部jar

时间:2015-03-27 16:02:53

标签: java classpath classloader manifest.mf

我即将编写一个java应用程序,它能够从包含扩展名.jar文件的外部目录加载扩展功能。我试图在MANIFEST.MF文件的Class-Path属性中指定外部目录,但不幸的是(根据Oracle的规范)不支持/禁止使用通配符加载.jar文件。

只要主应用程序jar中有清单文件,使用-classpath选项就不起作用。

有没有人知道如何解决这个问题。我还有另一种可能性来指定外部.jar目录(通过配置文件/设置或在程序中)。谢谢

2 个答案:

答案 0 :(得分:0)

实施您自己的ClassLoader ,这可以简单地扩展URLClassLoader并将扩展目录的URL添加到类加载器实例。

答案 1 :(得分:0)

我总是以这种方式将外部库放在jar应用程序的目录中:

   dir
   |-myapp.jar
   └ lib
      |-mylib.jar
      └ log4j-1.2.14.jar 

然后我在库中列出了我的应用程序的MANIFEST.MF:

Class-Path: lib/mylib.jar lib/log4j-1.2.14.jar