Viene visualizzato questo errore ogni volta che provo a creare un'immagine in JavaFX. Assolutamente nessuna immagine sta caricando, ma tutto il resto sull'interfaccia utente è. L'unica volta che vedo questo è quando prism.verbose=true
Come posso risolvere questo? JavaFX - Versione errata della libreria JPEG: la libreria è 80, il chiamante si aspetta 70
Altre risposte a domande simili qui su StackOverflow suggeriscono di reinstallare libjpeg. Ma quando faccio lo sudo apt-get remove libjpeg8
, prova a rimuovere 4 GB di pacchetti che sembrano abbastanza importanti.
Qualcun altro ha riscontrato questo problema e ha trovato una soluzione fattibile che non richiede la reinstallazione dell'intero sistema operativo?
Ecco l'intero stacktrace:
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)
E questo è il mio informazioni sulla versione per Java. Sto usando la versione di 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:
mi sono imbattuto strace
sulla mia app e sembra che qualcosa sta cercando specificamente per libjpeg 8 solo. Non sta provando mai a cercare alcuna libreria libjpeg predefinita o libjpeg 7.
Sembra che tu stia utilizzando una derivata Debian. Stai usando OpenJDK o il JDK di Oracle? Se sei su OpenJDK, potresti provare a cambiare: sudo sudo add-apt-repository ppa: webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer && sudo apt- installa install oracle-java8-set-default –
Sto usando il JDK di Oracle. Ho anche aggiornato la mia domanda con le informazioni sulla mia versione. – arjabbar
Potresti provare ad installare libjpeg7 e vedere se questo lo risolve? –