我即将编写一个java应用程序,它能够从包含扩展名.jar文件的外部目录加载扩展功能。我试图在MANIFEST.MF文件的Class-Path属性中指定外部目录,但不幸的是(根据Oracle的规范)不支持/禁止使用通配符加载.jar文件。
只要主应用程序jar中有清单文件,使用-classpath选项就不起作用。
有没有人知道如何解决这个问题。我还有另一种可能性来指定外部.jar目录(通过配置文件/设置或在程序中)。谢谢
答案 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