2011-04-13 3 views
5

Nasa Worldwind SDK에는 내가 실행하고 싶은 몇 가지 예가 있습니다. SDK에 제공된 예제를 실행하려고하는 두 가지 방법이 있습니다.Nasa Worldwind : 이러한 이상한 런타임 예외를 어떻게 수정합니까?

  1. 전체 SDK 소스 폴더를 사용하여 Eclipse 프로젝트를 만듭니다. 예제와 함께 폴더에 모든 worldwind 종속성 (*의 .jar 및 * .dll 파일)
  2. 이동에
    • 점 : SRC \ 모양의 정부 \ 항공 우주국 (NASA) \ worldwind의 \ 예.
    • 예제 ApplicationTemplate.java를 실행하십시오.
  3. 비어있는 Eclipse 프로젝트를 작성하십시오. 모든 worldwind 종속성에
    • 점은 (*의 .jar 및 * .dll 파일)
    • 점은
    • 이 그런 예 내 이클립스 프로젝트에 폴더를 복사 worldwind.jar합니다.
    • 예제에 gov.nasa.worldwind.examples로 나열된 모든 패키지를 리 팩터합니다.
    • 예제 ApplicationTemplate.java를 실행하십시오. 내가 옵션 (1)을 수행 할 때

나는 성공적으로 오류없이 실행/컴파일합니다.

I 옵션 (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

흠, 번역 중에 빠진 것이 없으면 대부분의 경우 Option (2)에 문제가 없어야합니다. 저는 지난 몇 달 동안 월드 윈드 도서관과 의논을 해본 결과, 당신을 위해 이것을 확인하고 a.s.a.p에 답할 것입니다. – eee

답변

3

좋습니다.다음은 윈도우에서 내 이클립스 프로젝트 단계는 환경 :

  1. lib 만들기 (빈 프로젝트가 오래가 에게 src 폴더를 가지고로 괜찮습니다) 새로운 이클립스 프로젝트를 만듭니다 이 프로젝트 아래의 폴더 ( 프로젝트 폴더의 루트 아래)
  2. 에 필요한 라이브러리 및 DLL 넣기3210 lib 폴더 : gluegen-rt.jar, jogl.jar, worldwind.jar, jogl.dll, gluegen-rt.dll, jogl_awt.dll, jogl_cg.dll
  3. lib 폴더에있는 모든 JAR 파일을 추가 HelloWorlWind.java src 폴더에 샘플을 복사 각 항아리를 마우스 오른쪽 버튼으로 클릭하고 으로 Referenced Libraries 나무는 Build Path > Add to Build Path
  4. 마우스 오른쪽 버를 선택 jogl.jarReferenced Libraries 트리 및 Build Path > Configure Build Path을 클릭하십시오. 그것은 Properties 대화 상자에서 Properties 대화 상자
  5. 를 나타납니다, Libraries tab로 이동
  6. 선택 Native library location 및 클릭 오른쪽 Edit 버튼 jogl.jar 트리를 확장합니다. 팝업 창이 Native Library Folder Configuration 대화 상자에 나타납니다.
  7. 폴더를 경로로 설정하고 Workspace... 버튼을 클릭합니다.

그런 다음 HelloWorlWind.java을 실행하십시오. 영광스러운 Worldwind Earth를 예외없이 표시합니다!

참고 : 일부 Worldwind 예제 응용 프로그램은 GUI 창을 닫은 후에 JVM을 종료하지 않습니다.

ApplicationTemplate.java이 작동하려면 필요한 종속성을 복사해야합니다

  • ClickAndGoSelectListener.java
  • LayerPanel.java
1

당신이 무엇을 설명 내가 정확히 수행에서 아무런 문제가 없습니다를 옵션 2, 잘 작동합니다. 새로 다운로드 한 WorldWind Java 소스 코드 사본을 사용할 때는 WorldWind.jar 파일을 사용하기 전에 Ant를 빌드해야합니다. WorldWind.jar 파일은 항상 최신 날짜가 아니며 사용시 충돌을 일으킬 수 있습니다.

기본적으로 사용자가 취한 행동에서 설명하는 것은 다음과 같습니다. 소스 코드를 사용할 때 작동하며 컴파일 된 코드를 사용할 때 작동하지 않습니다.

+0

흥미 롭 ...나는 당신이 제안한 것을 시도해야 할 것입니다. 나는 그들의 빌드 시스템이 소스와 jar 클래스를 동일하게 (즉, 소스 코드가 jar 클래스와 다른 사람의 실수를 막기 위해) 강제로한다고 가정했다. –

관련 문제