2012-01-15 13 views
10

Sto creando un programma di un'immagine watermarking in Java e ho importato i seguenti:di quale libreria ho bisogno quindi posso accedere a questo com.sun.image.codec.jpeg in Java?

import com.sun.image.codec.jpeg.JPEGCodec; 
import com.sun.image.codec.jpeg.JPEGEncodeParam; 
import com.sun.image.codec.jpeg.JPEGImageEncoder; 

ma ottengo un errore che dice: restrizione

di accesso: il tipo JPEGCodec non è accessibile a causa di restrizione sulla libreria richiesta

Qualcuno conosce un modo per risolvere questo problema, o quale libreria devo aggiungere per poter accedere a tale e dove trovo quella libreria?

+0

Vedi http: // StackOverflow. it/questions/1906673/import-com-sun-image-codec-jpeg – skaffman

risposta

11

dare uno sguardo qui Link

1. Open project properties. 
2. Select Java Build Path node. 
3. Select Libraries tab. 
4. Remove JRE System Library. 
5. Add Library JRE System Library. 

Come Milad suggerito

Anche se questo funzionerà, questo va contro tutte le politiche Java Runtime consigliati. La pratica migliore è evitare di utilizzare rt.jar (o qualsiasi altro Sun fornita libreria di runtime per quella materia, come tools.jar)

+1

Anche se funzionerà, questo va contro tutte le politiche di Java Runtime consigliate. La procedura migliore è evitare l'uso di rt.jar (o di qualsiasi altra libreria di runtime fornita da Sun, come gli strumenti.jar) –

+0

ho incluso il tuo commento nella mia risposta – RanRag

+0

:) Volevo solo assicurarmi che le risposte fornite fossero complete. Scusa se suonavo arrogante o altro. –

3

Questi sono in rt.jar, il file jar utilizzato come funzionalità di runtime dalla JVM e io raccomanderei vivamente di non aggiungerlo come dipendenza al progetto.

Vedere perché here.

Il modo corretto di fare ciò che si vuole fare è descritto here.

+0

Quindi dovrei aggiungere rt.jar come jar esterno al mio percorso di compilazione? – adrian

+0

Sì, lo sarai, anche se ti consiglierei comunque contro di esso. –

2

Il problema è che si sta importando le librerie dal pacchetto sun.com.*. Oracle actually discourages l'uso di questi pacchetti, poiché potrebbero essere rimossi nelle versioni future o potrebbero non essere disponibili in tutte le implementazioni JVM.

È possibile che l'IDE (che si sta utilizzando?) Sia configurato per generare errori se si tenta di importare le librerie sun.com.*, in tal caso una modifica della configurazione consentirà di utilizzare tali librerie, ma non sarebbe una buona idea comunque. Dovresti cercare altre alternative alla funzionalità che cerchi, usando librerie senza restrizioni di accesso.

Inoltre, se quello che vuoi è semplicemente leggere o scrivere un file JPEG, dai un'occhiata alla classe , ci sono molti metodi utili in là.

0

Forse la tua libreria di sistema JRE è 1.8

o eclisse: Proprietà progetto> java compilatore> Errori/Avvisi> Deprecato API

cambiamento errore di ignorare/avviso

Problemi correlati