Nasa Worldwind: Как вы исправляете эти странные исключения во время выполнения? - PullRequest
5 голосов
/ 13 апреля 2011

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

  1. Создайте проект Eclipse, используя всю исходную папку SDK.
    • указывает на все зависимости worldwind (* .jar и * .dll файлы)
    • Перейдите в папку с примерами: src \ gov \ nasa \ worldwind \ examples.
    • Запустите пример 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.). Кто-нибудь знает, как исправить ошибки времени выполнения, показанные выше?

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Хорошо ... Это мои Eclipse шаги проекта в среде Windows :

  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. Добавьте все файлы JAR из папки lib в Referenced Libraries дерево щелкнув правой кнопкой мыши по каждой банке и выберите Build Path > Add to Build Path
  6. Щелкните правой кнопкой мыши на jogl.jar в Referenced Libraries дерево и выберите Build Path > Configure Build Path. Появится 1032 * диалоговое окно
  7. В Properties диалоговом окне перейдите к Libraries tab и разверните jogl.jar дерево
  8. Выберите Native library location и нажмите кнопку Edit справа. Это появится диалоговое окно Native Library Folder Configuration.
  9. Установить папку lib в качестве местоположения Путь, нажав на Workspace... кнопка.

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

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

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

  • ClickAndGoSelectListener.java
  • LayerPanel.java
1 голос
/ 31 мая 2011

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

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

...