美国宇航局Worldwind:你如何解决这些奇怪的运行时异常?

Tre*_*ith 5 java configuration runtime worldwind

Nasa Worldwind SDK有一些我希望运行的例子.我尝试运行SDK中提供的示例有两种方法:

  1. 使用整个SDK源文件夹创建Eclipse项目.
    • 指向所有worldwind依赖项(*.jar和*.dll文件)
    • 转到包含示例的文件夹:src\gov \nasa\worldwind\examples.
    • 运行示例ApplicationTemplate.java main.
  2. 创建一个空的Eclipse项目.
    • 指向所有worldwind依赖项(*.jar和*.dll文件)
    • 指向worldwind.jar
    • 然后将examples文件夹复制到我的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
Run Code Online (Sandbox Code Playgroud)

由于许可和配置管理问题,我强烈希望选择选项(2.).有谁知道如何解决上面看到的这些运行时错误?

eee*_*eee 3

好的..这些是我在Windows环境下的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.javasrc文件夹中
  5. 右键单击每个 jar 并选择,将文件夹中的所有 JAR 添加lib到树中Referenced LibrariesBuild Path > Add to Build Path
  6. jogl.jar在 树中右键单击Referenced Libraries并选择Build Path > Configure Build Path。会弹出Properties 对话框
  7. Properties对话框中,转到 Libraries tab并展开 jogl.jar
  8. 选择Native library location并单击Edit右侧的按钮。它将弹出Native Library Folder Configuration对话框。
  9. 通过单击按钮将文件夹设置lib为位置路径Workspace...

然后,运行HelloWorlWind.java。无一例外,都会展现出辉煌的世界风大地!

请注意:一些 Worldwind 示例应用程序在关闭 GUI 窗口后不会终止 JVM。

为了使其ApplicationTemplate.java正常工作,请确保复制所需的依赖项:

  • ClickAndGoSelectListener.java
  • LayerPanel.java