我有一个jar,它是使用以下配置在本地系统上使用sbt创建的: JDK 1.8, SBT 1.2.8
我想在具有JDK 1.7的VM上执行jar。为了创建可以在JDK 1.7中执行的jar,我在build.sbt中添加了以下内容:
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
scalacOptions := Seq("-target:jvm-1.7")
javaHome := Some(file("C:\\Program Files\\Java\\jdk1.7.0_80"))
尽管将sbt指定为目标JDK 1.7,但出现以下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/uic/mapreduce/Main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.hadoop.util.RunJar.run(RunJar.java:219)
at org.apache.hadoop.util.RunJar.main(RunJar.java:141)
此问题的所有其他线程似乎都可以通过上述更改来解决。我似乎在这里丢失了一些东西。