5

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
    • 然后将示例文件夹复制到我的 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.)。有谁知道如何修复上面看到的这些运行时错误?

4

2 回答 2

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 并选择将lib文件夹中的所有 JAR 添加到树中Referenced LibrariesBuild Path > Add to Build Path
  6. jogl.jarReferenced 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。它将无一例外地展现光辉的世风地球!

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

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

  • ClickAndGoSelectListener.java
  • 图层面板.java
于 2011-04-14T01:39:09.100 回答
1

完全按照您在选项 2 中描述的操作,我没有任何问题,它工作正常。当使用新下载的 WorldWind Java 源代码副本时,您应该在使用 WorldWind.jar 文件之前执行 Ant Build。WorldWind.jar 文件并不总是最新的,并且在使用时可能会导致冲突。

基本上,您从您的操作中描述的是:它在使用源代码时有效,而在使用编译代码时它失败。

于 2011-05-31T13:24:31.497 回答