2011-04-13 16 views
5

Nasa Worldwind SDK ha alcuni esempi che desidero eseguire. Ci sono due modi che sto provando a fare funzionare gli esempi forniti nel SDK:Nasa Worldwind: come si risolvono queste strane eccezioni di runtime?

  1. creare un progetto Eclipse utilizzando l'intera cartella di origine SDK.
    • punto a tutte le dipendenze WorldWind (* .jar e * .dll)
    • Vai alla cartella con esempi: src \ gov \ NASA \ WorldWind \ esempi.
    • Eseguire l'esempio ApplicationTemplate.java main.
  2. Creare un progetto Eclipse vuoto.
    • punto a tutte le dipendenze WorldWind (* .jar e file * .dll)
    • punto worldwind.jar
    • quindi copiare la cartella esempi nel mio progetto Eclipse.
    • Riforma tutti i pacchetti elencati come gov.nasa.worldwind.examples in esempi.
    • Eseguire l'esempio ApplicationTemplate.java main.

Quando faccio l'opzione (1) I successo compilare/eseguire senza errori.

Quando faccio l'opzione (2) compilo con successo ma ottenere errori di esecuzione:

Apr 13, 2011 12:18:35 PM gov.nasa.worldwind.WorldWind createComponent 
SEVERE: Exception while creating World Wind component gov.nasa.worldwind.cache.BasicDataFileStore 
Apr 13, 2011 12:18:35 PM gov.nasa.worldwind.WorldWind createConfigurationComponent 
SEVERE: Unable to create class for configuration key gov.nasa.worldwind.cache.BasicDataFileStore 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at gov.nasa.worldwind.awt.WorldWindowGLCanvas.<init>(Unknown Source) 
    at Main2.main(Main2.java:15) 
Caused by: java.lang.IllegalStateException: Unable to create class for configuration key gov.nasa.worldwind.cache.BasicDataFileStore 
    at gov.nasa.worldwind.WorldWind.createConfigurationComponent(Unknown Source) 
    at gov.nasa.worldwind.WorldWind.initialize(Unknown Source) 
    at gov.nasa.worldwind.WorldWind.<init>(Unknown Source) 
    at gov.nasa.worldwind.WorldWind.<clinit>(Unknown Source) 
    ... 2 more 
Caused by: gov.nasa.worldwind.exception.WWRuntimeException: Exception while creating World Wind component gov.nasa.worldwind.cache.BasicDataFileStore 
    at gov.nasa.worldwind.WorldWind.createComponent(Unknown Source) 
    ... 6 more 
Caused by: java.lang.NullPointerException 
    at gov.nasa.worldwind.cache.BasicDataFileStore.<init>(Unknown Source) 
    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.newInstance0(Unknown Source) 
    at java.lang.Class.newInstance(Unknown Source) 
    ... 7 more 

Per questioni di licenza e di gestione della configurazione, caldamente preferisco andare con l'opzione (2.). Qualcuno sa come risolvere questi errori di runtime visti sopra?

+0

Hmm, non dovrebbe esserci alcun problema con Option (2) nella maggior parte dei casi a meno che manchi qualcosa durante la traduzione. Controllerò questo per te e risponderò a.s.a.p da quando ho armeggiato con le librerie Worldwind negli ultimi mesi. – eee

risposta

3

Ok ..Questi sono i miei Eclipse fasi del progetto sotto di Windows ambiente:

  1. Creare un nuovo Eclipse progetto (un progetto vuoto va bene fintanto che ha la cartella src)
  2. Creare il lib cartella sotto questo progetto (nella cartella radice della cartella di progetto )
  3. Inserire librerie e DLL richieste in la cartella lib: gluegen-rt.jar, jogl.jar, worldwind.jar, jogl.dll, gluegen-rt.dll, jogl_awt.dll, jogl_cg.dll
  4. copiare il campione HelloWorlWind.java nella cartella src
  5. Aggiungere tutti i JAR nella cartella lib in l'albero Referenced Libraries da clic destro su ogni vasetto e selezionare Build Path > Add to Build Path
  6. tasto destro fare clic su jogl.jar nell'albero Referenced Libraries e selezionare Build Path > Configure Build Path. Si aprirà Properties finestra di dialogo
  7. Nella Properties finestra di dialogo, andare a Libraries tab ed espandere jogl.jar albero
  8. Selezionare Native library location e click Edit pulsante sulla destra. Lo aprirà la finestra di dialogo Native Library Folder Configuration.
  9. Impostare la cartella lib come percorso facendo clic sul pulsante Workspace... .

Quindi, eseguire HelloWorlWind.java. Mostrerà la gloriosa Worldwind Earth senza eccezioni!

Prendere nota: alcune app di esempio Worldwind non terminano la JVM dopo aver chiuso la finestra della GUI.

Per la ApplicationTemplate.java a lavorare, assicurarsi di copiare le dipendenze richieste:

  • ClickAndGoSelectListener.java
  • LayerPanel.java
1

non ho problemi di fare esattamente ciò che si descrive in opzione 2, funziona bene. Quando si utilizza una copia appena scaricata del codice sorgente Java WorldWind, è necessario creare un'antivacy prima di utilizzare il file WorldWind.jar. Il file WorldWind.jar non è sempre aggiornato e può causare conflitti durante l'utilizzo.

In pratica, ciò che descrivi dalle tue azioni è questo: funziona quando sta utilizzando il codice sorgente e non funziona quando sta utilizzando il codice compilato.

+0

interessante ...Dovrò provare ciò che suggerisci. Supponevo che il loro sistema di compilazione costringesse le classi source e jar a essere le stesse (ad esempio, previene l'errore umano in cui il codice sorgente è diverso dalle classi jar). –