【问题标题】:JAI -javax.imageio.ImageIO exception while running exported jar运行导出的 jar 时出现 JAI -javax.imageio.ImageIO 异常
【发布时间】:2015-12-18 09:09:10
【问题描述】:

当我运行项目时,我的 Eclipse 安装没有任何问题,但是如果我导出与可运行的 jar 文件相同的文件,那么我会收到如下异常:

Exception in thread "Thread-2" java.util.ServiceConfigurationError: javax.imageio.spi.ImageReaderSpi: Provider com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReaderSpi could not be instantiated
            at java.util.ServiceLoader.fail(Unknown Source)
            at java.util.ServiceLoader.access$100(Unknown Source)
            at java.util.ServiceLoader$LazyIterator.nextService(Unknown Source)
            at java.util.ServiceLoader$LazyIterator.next(Unknown Source)
            at java.util.ServiceLoader$1.next(Unknown Source)
            at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(Unknown Source)
            at javax.imageio.spi.IIORegistry.<init>(Unknown Source)
            at javax.imageio.spi.IIORegistry.getDefaultInstance(Unknown Source)
            at javax.imageio.ImageIO.<clinit>(Unknown Source)
            at emiratesid.ae.sample.MainFrame.displayPublicData(MainFrame.java:837)
            at emiratesid.ae.sample.MainFrame.loadPublicData(MainFrame.java:754)
            at emiratesid.ae.sample.MainFrame$PublicDataThread.run(MainFrame.java:1267)
            at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.IllegalArgumentException: vendorName == null!
            at javax.imageio.spi.IIOServiceProvider.<init>(Unknown Source)
            at javax.imageio.spi.ImageReaderWriterSpi.<init>(Unknown Source)
            at javax.imageio.spi.ImageReaderSpi.<init>(Unknown Source)
            at com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReaderSpi.<init>(CLibJPEGImageReaderSpi.java:80)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at java.lang.Class.newInstance(Unknown Source)
            ... 11 more
    Exception in thread "Thread-3" java.lang.NoClassDefFoundError: Could not initialize class javax.imageio.ImageIO
            at emiratesid.ae.sample.MainFrame.displayPublicData(MainFrame.java:837)
            at emiratesid.ae.sample.MainFrame.loadPublicData(MainFrame.java:754)
            at emiratesid.ae.sample.MainFrame$PublicDataThread.run(MainFrame.java:1267)
            at java.lang.Thread.run(Unknown Source)

有没有人经历过这种异常。寻求帮助。

【问题讨论】:

标签: java jar javax.imageio jai


【解决方案1】:

您能否编译下面的类并以java -cp your_runable.jar:. Check 运行它。

public class Check {
    public static void main(String[] args) {
        System.out.println(
            com.sun.media.imageioimpl.common.PackageUtil.getVendor()
        );
    }
}

输出应该类似于运行java -cp jai_imageio-1.1.jar:. Check的输出

Sun Microsystems, Inc.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2017-10-27
    • 2023-04-08
    相关资源
    最近更新 更多