2

我已经下载了程序:

wget https://github.com/crawljax/crawljax/releases/download/crawljax-3.6/crawljax-cli-3.6.zip

解压它:

unzip crawljax-cli-3.6.zip

进入文件夹并运行:

java -jar crawljax-cli-3.6.jar

这是我得到的错误:

java -jar crawljax-cli-3.6.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/crawljax/cli/JarRunner : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: com.crawljax.cli.JarRunner. Program will exit.

我已经这样做了:

apt-get install default-jre
apt-get install default-jdk

但是是同样的错误

我的java版本:

javac -version

javac 1.6.0_35

java -version

java version "1.6.0_35" OpenJDK Runtime Environment (IcedTea6 1.13.7) (6b35-1.13.7-1~deb7u1) OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

我读过这篇文章是因为我编译的版本比在 JVM 上执行的版本高,但是我这里没有要重新编译的源代码,我只有 .jar。

4

3 回答 3

1

如您所述,您正在尝试使用 JRE 6 运行为 Java 7 编译的 JAR。只需从 Java 7 安装 JRE:

apt-get install openjdk-7-jre 
apt-get install openjdk-7-jdk # just for good measures

并将其设置为默认 JRE:

update-alternatives --config java # and select Java 7
于 2015-07-23T15:54:52.717 回答
1

您需要使用 Java 7 运行此代码,因为它是用它编译的。

于 2015-07-23T15:50:38.753 回答
1

当您打开 github 时:https ://github.com/crawljax/crawljax/blob/master/pom.xml您应该能够在 pom 中看到它是在 Java 1.7 中编译的,并且您正在尝试在较低版本中运行它。以下是此类错误的备忘单:

显示的版本号描述了类文件兼容的 JRE 版本。报告的主要数字是:

J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

您可以在更高版本中运行它,或者将 pom 属性更改为 1.6 并构建它。但在 1.7+ 版本中运行它是更好的主意。

于 2015-07-23T16:09:09.083 回答