2011-04-13 7 views
5

Nasa Worldwind SDK имеет несколько примеров, которые я хочу запустить. Есть два способа, которыми я пытаюсь запустить примеры, приведенные в SDK:Nasa Worldwind: Как вы исправляете эти странные исключения времени выполнения?

  1. Создайте проект Eclipse, используя всю исходную папку SDK.
    • точка для всех зависимостей WorldWind (* .jar и * .dll файлов)
    • Перейдите в папку с примерами: ЦСИ \ г \ наса \ WorldWind \ примеры.
    • Запустите пример ApplicationTemplate.java main.
  2. Создайте проект Eclipse, который пуст.
    • точка для всех зависимостей WorldWind (* .jar и * .dll файлов)
    • пункт worldwind.jar
    • Затем скопируйте примеры папки в моем проекте Eclipse.
    • Рефакторинг всех пакетов, перечисленных в примерах gov.nasa.worldwind.examples.
    • Запустите пример ApplicationTemplate.java main.

Когда я вариант (1.) Я успешно скомпилировать/запустить без ошибок.

Когда я вариант (2.) я успешно компилировать, но задавят ошибки времени:

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 

В связи с вопросами лицензирования и управления конфигурацией, я бы КАТЕГОРИЧЕСКИ ПРЕДПОЧИТАЛИ идти с опцией (2.). Кто-нибудь знает, как исправить эти ошибки во время выполнения, указанные выше?

+0

Хмм, это не должно быть проблемой с Вариантом (2) в большинстве случаев, если во время перевода не возникает чего-то. Я проверю это для вас и ответю a.s.a.p, так как за последние несколько месяцев я возился с библиотеками Worldwind. – eee

ответ

3

ОК ..Это мои Eclipse, технопарка под Окно среда:

  1. Создать новый Eclipse, проекта (пустой проекта прекрасно до тех пор, как он имеет в src папку)
  2. Создает lib в рамках этого проекта (под корнем папки проекта )
  3. Положить необходимые библиотеки и библиотеки DLL в lib папки: gluegen-rt.jar, jogl.jar, worldwind.jar, jogl.dll, gluegen-rt.dll, jogl_awt.dll, jogl_cg.dll
  4. скопировать образец HelloWorlWind.java в папку src
  5. Добавить все JARs в папке lib в Referenced Libraries дерева по правой кнопки мыши на каждую баночку и выберите Build Path > Add to Build Path
  6. правшей нажмите на jogl.jar в Referenced Libraries Дерево и выберите Build Path > Configure Build Path. Он появится диалоговое окно
  7. Properties В Properties диалоговом окне перейдите к Libraries tab и расширить jogl.jar дерева
  8. Выберите Native library location и нажмите Edit кнопки справа. Это будет всплывающее окно Native Library Folder Configuration.
  9. Установите папку lib как местонахождение путь, нажав на Workspace... кнопка.

Затем запустите HelloWorlWind.java. Он будет отображать славную Землю Worldwind без каких-либо исключений!

Обратите внимание: несколько примеров приложений Worldwind не завершают JVM после закрытия окна графического интерфейса пользователя.

Для ApplicationTemplate.java работать, убедитесь, чтобы скопировать необходимые зависимости:

  • ClickAndGoSelectListener.java
  • LayerPanel.java
1

У меня нет проблем с делать именно то, что вы описали в вариант 2, он отлично работает. При использовании только что загруженной копии исходного кода WorldWind Java вы должны сделать Ant Build it перед использованием файла WorldWind.jar. Файл WorldWind.jar не всегда соответствует дате и может вызвать конфликты при использовании.

В основном, что вы описываете в своих действиях, так это: он работает, когда используется исходный код, и что он не работает, когда он использует скомпилированный код.

+0

интересный ...Мне придется попробовать то, что вы предлагаете. Я предположил, что их система сборки заставляла классы источника и jar быть одинаковыми (т. Е. Предотвращать человеческую ошибку, когда ваш исходный код отличается от классов jar). –