svnによってバージョン管理されたJavaプロジェクトがあり、Linux用のビルドを構成しようとしています。私の仕事用コンピューターではすべて正常に動作し、変更をコミットしました。ただし、両方の自宅のコンピューターで、このエラーが発生します。これは、セットアップの些細な問題のようです。
Exception in thread "main" java.lang.NoClassDefFoundError: adventure/Adventure
Caused by: java.lang.ClassNotFoundException: adventure.Adventure
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: adventure.Adventure. Program will exit.
srcをパスに追加するのを忘れましたか?それがubuntuでどのように見えるかはここにあります:
それはJava7でコミットされましたが、ubuntuにはJava 6しかありません。それでも機能しますか、それともJavaバージョンを完全に調和させる必要がありますか?
アップデート
ビルドパスをクリーンアップしてJARを再度セットアップしましたが、Java 7固有の機能を使用していないため、Java 6 JREを追加します。これは、JREをセットアップするだけで機能するはずです。しかし、LinuxでJREを追加する方法がわかりませんか?Windowsでも試すことができ、適切なJREを追加できるかもしれません。ここで、ビルドの問題があります。
おかげで、今は主な問題のように見えるJDKがなく、ビルドの問題だけがあります。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
String cannot be resolved to a type
at adventure.Adventure.main(Adventure.java:74)
私のJavaバージョンはうまくいくようです:
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-4ubuntu3)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
インストールされているJREはOpenJDK6であり、次のように機能します。
私のクラスパス変数は次のようになります