我有一个由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中的外观如下:
它是用Java 7提交的,但在ubuntu上我只有Java 6.它还能运行还是我需要完全协调Java版本?
我清理了构建路径并再次设置了JAR,我将添加Java 6 JRE,因为我没有使用任何Java 7特定功能,所以如果我只设置了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是OpenJDK 6应该可以工作:
我的类路径变量看起来像这样
答案 0 :(得分:3)
通常应该在没有bin文件夹的情况下提交Java项目(将其设置为忽略)。
看起来您的项目已签入,包括来自Java 7的已编译类文件,当然也不能由Java 6加载。
您应按以下步骤操作:
打开终端并切换到项目目录
svn delete bin
svn propset svn:ignore bin .
是否有人如何从Eclipse中执行此操作?
切换回Eclipse并在项目上执行“Clean”命令,以便Eclipse使用Java版本重新构建它。
答案 1 :(得分:1)
但我不知道如何用linux添加我的JRE?
您肯定知道偏好设置> Java->已安装的JRE。请在usr / lib / jvm子目录中浏览Java安装。