How can i fix this? JavaFX - Invalid version of JPEG library: library 80, subscriber expects 70

I get this error whenever I try to create an image in JavaFX. Absolutely no images are loaded, but everything else is in the user interface. The only time I see this is when prism.verbose=true

Other answers to similar questions here at StackOverflow suggest reinstalling libjpeg. But when I do sudo apt-get remove libjpeg8 , it tries to remove 4 GB packages that seem pretty important.

Has anyone else experienced this and found an acceptable solution that will not require me to reinstall my entire OS?

Here is the whole stack:

 java.io.IOException: Wrong JPEG library version: library is 80, caller expects 70 at com.sun.javafx.iio.jpeg.JPEGImageLoader.initDecompressor(Native Method) at com.sun.javafx.iio.jpeg.JPEGImageLoader.<init>(JPEGImageLoader.java:187) at com.sun.javafx.iio.jpeg.JPEGImageLoaderFactory.createImageLoader(JPEGImageLoaderFactory.java:49) at com.sun.javafx.iio.ImageStorage.getLoaderBySignature(ImageStorage.java:419) at com.sun.javafx.iio.ImageStorage.loadAll(ImageStorage.java:266) at com.sun.javafx.tk.quantum.PrismImageLoader2.loadAll(PrismImageLoader2.java:142) at com.sun.javafx.tk.quantum.PrismImageLoader2.<init>(PrismImageLoader2.java:77) at com.sun.javafx.tk.quantum.PrismImageLoader2$AsyncImageLoader.processStream(PrismImageLoader2.java:252) at com.sun.javafx.tk.quantum.PrismImageLoader2$AsyncImageLoader.processStream(PrismImageLoader2.java:225) at com.sun.javafx.runtime.async.AbstractRemoteResource.call(AbstractRemoteResource.java:109) at com.sun.javafx.tk.quantum.PrismImageLoader2$AsyncImageLoader.access$201(PrismImageLoader2.java:225) at com.sun.javafx.tk.quantum.PrismImageLoader2$AsyncImageLoader.lambda$call$428(PrismImageLoader2.java:259) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.PrismImageLoader2$AsyncImageLoader.call(PrismImageLoader2.java:258) at com.sun.javafx.tk.quantum.PrismImageLoader2$AsyncImageLoader.call(PrismImageLoader2.java:225) at com.sun.javafx.runtime.async.AbstractAsyncOperation.lambda$new$272(AbstractAsyncOperation.java:57) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 

And this is my version information for java. I am using the version of Oracle.

 java version "1.8.0_72" Java(TM) SE Runtime Environment (build 1.8.0_72-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode) 

EDIT:

I ran strace in my application, and it looks like something is looking only for libjpeg 8. It never tries to find any libjpeg library by default or libjpeg 7 in general.

+6
source share
1 answer

I think Java is related to libjpeg7, but you may have libjpeg8 in your LD_LIBRARY_PATH, so the interface does not match.

libjpeg.so ships with Java (in the lib / amd64 folder for x64 systems), but this is not used, probably due to an override in LD_LIBRARY_PATH.

0
source

All Articles