从打包在 jar 中的库访问 类
Accessing classes from libraries packaged in a jar
我为应用程序开发了一个插件。这个插件包括几个库
当从应用程序调用插件时,我得到:
java.lang.NoClassDefFoundError: com/sun/media/imageioimpl/plugins/tiff/TIFFImageWriterSpi
我已确认此 class 已与插件 jar 打包在一起,所以我猜我需要在插件 jar 中使用某种 classloader 来访问此 class - 但不确定如何。感谢任何帮助或重定向。
您需要将 com.sun.media:jai_imageio:1.1
依赖项添加到您的 pom.xml
中。你可以找到依赖关系 belwo:
<dependency>
<groupId>com.sun.media</groupId>
<artifactId>jai_imageio</artifactId>
<version>1.1</version>
</dependency>
如果您使用的是简单项目,您需要从 link 下面下载 jai_imageio.jar
jar 文件并放入 lib
目录并添加到构建路径:
您需要让应用程序知道插件 jar 的位置,以便它可以在 运行 时加载所需的 类。您可以通过在应用程序 jar 的 META-INF/MANIFEST 文件中指定引用插件 jar 的 Class-Path 条目来做到这一点。
Class-Path: plugin-jar-name1 plugin-jar-name2
我为应用程序开发了一个插件。这个插件包括几个库
当从应用程序调用插件时,我得到:
java.lang.NoClassDefFoundError: com/sun/media/imageioimpl/plugins/tiff/TIFFImageWriterSpi
我已确认此 class 已与插件 jar 打包在一起,所以我猜我需要在插件 jar 中使用某种 classloader 来访问此 class - 但不确定如何。感谢任何帮助或重定向。
您需要将 com.sun.media:jai_imageio:1.1
依赖项添加到您的 pom.xml
中。你可以找到依赖关系 belwo:
<dependency>
<groupId>com.sun.media</groupId>
<artifactId>jai_imageio</artifactId>
<version>1.1</version>
</dependency>
如果您使用的是简单项目,您需要从 link 下面下载 jai_imageio.jar
jar 文件并放入 lib
目录并添加到构建路径:
您需要让应用程序知道插件 jar 的位置,以便它可以在 运行 时加载所需的 类。您可以通过在应用程序 jar 的 META-INF/MANIFEST 文件中指定引用插件 jar 的 Class-Path 条目来做到这一点。
Class-Path: plugin-jar-name1 plugin-jar-name2