Java 应用加载外部 jar
Java Application loading external jar
我即将编写一个 java 应用程序,它能够从包含扩展 .jar 文件的外部目录加载扩展功能。我试图在 MANIFEST.MF 文件的 Class-Path 属性 中指定外部目录,但不幸的是(根据 Oracle 的规范)不支持/禁止使用通配符加载 .jar 文件。
只要主应用程序 jar 中有清单文件,使用 -classpath 选项就不起作用。
有没有人知道我该如何解决这个问题。我还有另一种可能性来指定外部 .jar 目录(通过配置 file/setting 或在程序中)。谢谢
实现你自己的ClassLoader
,它可以简单地扩展URLClassLoader
并将扩展目录的URL添加到类加载器实例。
我总是以这种方式将外部库放在 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
我即将编写一个 java 应用程序,它能够从包含扩展 .jar 文件的外部目录加载扩展功能。我试图在 MANIFEST.MF 文件的 Class-Path 属性 中指定外部目录,但不幸的是(根据 Oracle 的规范)不支持/禁止使用通配符加载 .jar 文件。
只要主应用程序 jar 中有清单文件,使用 -classpath 选项就不起作用。
有没有人知道我该如何解决这个问题。我还有另一种可能性来指定外部 .jar 目录(通过配置 file/setting 或在程序中)。谢谢
实现你自己的ClassLoader
,它可以简单地扩展URLClassLoader
并将扩展目录的URL添加到类加载器实例。
我总是以这种方式将外部库放在 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