Win 7 (64 ビット)、Indigo/Java 1.6 でクロスプラットフォーム RCP アプリケーションを開発しており、Tycho で製品を構築しています。
アプリケーションは Eclipse 内の実行構成から正常に実行され、Win x_86_64 ビルドも正常に実行されますが、xubuntu (OpenJDK Java 6 ランタイム (1.6.0_24) と Mac OS X (1.6.0_35) を使用) の両方で次のエラーが発生します。 .
エラー (Linux の場合) は次のようになります (実行中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>
なぜこれがうまくいかないのか、誰にもアイデアがありますか? どうもありがとう!