从包装在jar中的库中访问类

时间:2017-08-14 04:38:35

标签: java jar noclassdeffounderror

我为应用程序开发了一个插件。这个插件包含几个库

当从应用程序调用插件时,我得到了:

java.lang.NoClassDefFoundError: com/sun/media/imageioimpl/plugins/tiff/TIFFImageWriterSpi

我已经确认这个类已经与插件jar打包在一起所以我猜我需要在插件jar中使用某种类加载器来访问这个类 - 但不知道如何。任何帮助或重新指示赞赏。

2 个答案:

答案 0 :(得分:1)

您需要让应用程序知道插件jar所在的位置,以便它可以在运行时加载所需的类。您可以通过在应用程序jar的META-INF / MANIFEST文件中指定引用插件jar的Class-Path条目来实现。

Class-Path: plugin-jar-name1 plugin-jar-name2

答案 1 :(得分:0)

您需要在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>

如果您使用的是简单项目,则需要从下面的链接下载jai_imageio.jar jar文件并放入lib目录并添加到构建路径中:

http://www.java2s.com/Code/Jar/j/Downloadjaiimageiojar.htm