![](/img/trans.png)
[英]Java: why code packaged into a jar file prevent external classes from accessing?
[英]Accessing classes from libraries packaged in a jar
我已经为应用程序开发了一个插件。 这个插件包括几个库
当从应用程序调用插件时,我得到:
java.lang.NoClassDefFoundError: com/sun/media/imageioimpl/plugins/tiff/TIFFImageWriterSpi
我已经确认该类已与插件jar打包在一起,所以我猜测我需要在插件jar中使用某种类加载器来访问此类-但不确定如何进行。 任何帮助或重定向赞赏。
您需要让应用程序知道插件jar的位置,以便它可以在运行时加载所需的类。 您可以通过在应用程序jar的META-INF / MANIFEST文件中指定指向插件jar的Class-Path条目来实现。
Class-Path: plugin-jar-name1 plugin-jar-name2
您需要将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
目录并添加至构建路径:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.