2011-02-09 16 views
6

Ho trovato un codice java e voglio usarlo nel mio progetto. Esso contiene queste importazioni che il mio JDK non ha:Utilizzo pacchetto com.sun.awt

import com.sun.awt.AWTUtilities; 
import com.sun.jna.Native; 
import com.sun.jna.platform.WindowUtils; 

ho fatto riferimento al sito del sole e trovato questa pagina di download:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

E 'necessario scaricare tutta JDK e JRE e sostituirlo dal sito web SUN? My JDK è la versione 6 ed è aggiornato.

grazie a tutti voi

risposta

8

JNA è una libreria aggiuntiva e non fa parte dell'API standard, è necessario scaricarlo (here) e includerlo nel classpath.

La classe AWTUtilities è distribuita solo con sun jvm come dettaglio di implementazione dell'api e come tale soggetto a modifiche, questo può interrompere qualsiasi programma a seconda di esso (se possibile don't use it).

WindowUtils può essere trovato nel platform.jar, puoi trovarlo nella stessa pagina di jna.

+0

Grazie. Ma sai come posso trovare un file jar che contenga: com.sun.jna.platform.WindowUtils? Questo è importante per me perché voglio anche eseguire il mio codice su Linux. – sajad

+0

@sajad ha aggiornato la mia risposta. – josefx

3

Si consiglia di non utilizzare alcun pacchetto com.sun se non come ultima risorsa. Questi sono considerati come dettagli di implementazione e non fanno parte dell'API JDK. Possono cambiare arbitrariamente tra le versioni, in modo che possano causare problemi quando si tenta di aggiornare le versioni di JDK.

Le classi di com.sun sono quasi sempre avvolte da classi "ufficiali" - dovresti invece usarle. Puoi usarli in una situazione di ultima istanza, ma sono già parte del download di JDK, quindi non dovrebbero esserci download aggiuntivi necessari.

MODIFICA: Sembra che tu abbia ragione, devi scaricare alcuni barattoli in più. Il jar JNA è disponibile su maven central (http://mvnrepository.com/artifact/com.sun.jna/jna/3.0.9). Specialmente se questo è uno snippet di codice che hai trovato, ti consiglio vivamente di non usare i pacchetti com.sun direttamente.

+0

grazie. sì su com.sun.AWTUtilities. Ma importa com.sun.jna.Native; com.sun.jna.platform.WindowUtils; Sono ancora il mio problema. Penso di dover aggiungere una libreria esterna al mio progetto. – sajad

+0

Sì jna 3.0.9 ha com.sun.jna.Native; Ma che dire di com.sun.jna.platform.WindowUtils ?? Questa classe ha un metodo: WindowUtils.getAlphaCompatibleGraphicsConfiguration() che restituisce un oggetto GraphiConfigurations che viene utilizzato nel mio codice. Voglio anche eseguire il mio codice in linux. quindi questo è importante per me. Questa è l'ultima versione di jna? Grazie. – sajad

5

Il JDK deve avere com.sun.awt.AWTUtilities. È in rt.jar.

Forse il problema (per quel file) è che il tuo IDE esclude il genitore del percorso di build ... sulla base del fatto che è una cattiva idea quella di usare direttamente quelle classi.

Le classi com.sun.jna non sono in rt.jar. Apparentemente possono essere trovati in un jna.jar, anche se non ho ancora trovato un buon posto per il download. (Se si utilizza Maven, provare this.)

+0

grazie. sì su com.sun.AWTUtilities. Ma importa com.sun.jna.Native; com.sun.jna.platform.WindowUtils; Sono ancora il mio problema. Penso di dover aggiungere una libreria esterna al mio progetto. – sajad

+0

@sajad - Penso che lo faccia anche tu. –

+0

@StephenC.Ho avuto lo stesso problema. il mio jre era predefinito 1.6 solo nel mio IDE. Ho passato così tanto tempo a risolverlo, ma non ci sono riuscito. per fortuna ho trovato la tua risposta. Il tuo consiglio al 100% mi ha aiutato e ha funzionato perfettamente per me. Sei un genio, un uomo superbo e perfetto. Tutti i meriti. Grazie mille! Se potessi, avrò un aumento di 10000 volte. –