1

Windows 7 (64 비트), Indigo/Java 1.6에서 Tycho를 사용하여 제품을 빌드하는 크로스 플랫폼 RCP 응용 프로그램을 개발하고 있습니다.NoClassDefFoundError : Linux/Mac OS에서 Tycho 기반 Eclipse RCP 응용 프로그램을 실행할 수 없습니다.

이클립스의 Run Configuration에서 애플리케이션이 잘 실행되고 Win x_86_64 빌드가 잘 실행되는 동안 xubuntu (OpenJDK Java 6 Runtime (1.6.0_24) 및 Mac OS X (. 1.6.0_35)() 리눅스에

오류는 (실행 java myprogram) 다음과 같습니다

Exception in thread "main" java.lang.NoClassDefFoundError: myprogram 
Caused by: java.lang.ClassNotFoundException: myprogram 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: myprogram. Program will exit. 

내가 전에이 건너했는지 확인 해요, 내가 바보 일 (생각 이 문제는 AFAIK 이전의 Windows에서 발생했으며 Java를 다시 설치하면 어떤 이유로 든 해결되었습니다.) 그러나이 경우 빌드/대상과 관련이 있어야한다고 생각합니다. 플랫폼/Tycho 설정.

크로스 플랫폼 빌드에 대한 책임을 내 부모 POM의 부분은 충분히 의심하지 않는 같습니다

<plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>target-platform-configuration</artifactId> 
     <version>${tycho-version}</version> 
     <configuration> 
     <resolver>p2</resolver> 
     <pomDependencies>consider</pomDependencies> 
     <!-- configure the p2 target environments for multi-platform build --> 
     <environments> 

      <environment> 
      <os>linux</os> 
      <ws>gtk</ws> 
      <arch>x86</arch> 
      </environment> 
      <environment> 
      <os>linux</os> 
      <ws>gtk</ws> 
      <arch>x86_64</arch> 
      </environment> 
      <environment> 
      <os>win32</os> 
      <ws>win32</ws> 
      <arch>x86</arch> 
      </environment> 

      <environment> 
      <os>win32</os> 
      <ws>win32</ws> 
      <arch>x86_64</arch> 
      </environment> 
      <environment> 
      <os>macosx</os> 
      <ws>cocoa</ws> 
      <arch>x86_64</arch> 
      </environment> 
     </environments> 
     </configuration> 
    </plugin> 

이 작동되지 않는 이유 사람이 어떤 아이디어가 있습니까? 많은 감사!

+0

'java myprogram -X'와 똑같은 오류 메시지가 나타납니다. –

답변

2

Eclipse RCP 응용 프로그램을 실행하는 방법이 아닙니다.

적합한 기본 실행기 또는 java -jar plugins/org.eclipse.equinox.launcher_(yourVersion).jar (참조) 및 아마도 더 많은 인수를 사용하여 application을 선택하여 실행해야합니다.

또한 응용 프로그램에 Equinox를 시작해야하는 번들이 있는지 확인해야합니다. 제품에 org.eclipse.rcp 기능을 포함시켜이 작업을 수행 할 수 있습니다.

+0

감사합니다. java -jar 버전은 두 OS 모두에서 완벽하게 작동합니다. 다시 원래의 실행기 : 나는 Tycho *가 나를 위해 이것을 만들 수 있기를 바랬습니다. 나는 그들에 대해 읽었지만, 모든 게시물 등은 델타 팩을 거래의 일부로 언급 한 반면, 더 이상 필요하지 않을 것이라고 생각했다. (만약 내가 기억한다면 올바르게) 필요한 플러그인은 모두 이클립스 p2에서 사용할 수 있습니다 ... 내가 잘못 했나요? –

+0

또한 기본 실행기가 있지만 Finder에서 Linux를 두 번 클릭해도 아무런 변화가 없습니다. Mac OS X의'myprogram.app'는 아무 것도하지 않습니다. 내 제품 구성에서 잘못 구성된 것 (즉, 전혀 구성되지 않은 것) 일 것입니다. –

+0

네이티브 런처는 모든 것이 제대로 구성된 경우 작동합니다. [이 튜토리얼] (https://github.com/jsievers/tycho-demo)을 참조하십시오. Tycho는 org.eclipse.equinox.executable (일명 "델타 팩") 기능을 필요로하지만 대개 Eclipse 릴리스 트레인 저장소에서 자동으로 가져옵니다. – oberlies