У меня есть jar, который был создан с использованием sbt в моей локальной системе со следующей конфигурацией: JDK 1.8, SBT 1.2.8
Я хотел выполнить jar на виртуальной машине с JDK 1.7.Чтобы создать jar-файл таким образом, чтобы он мог выполняться в JDK 1.7, я добавил в свой 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)
Все остальные темы для этой проблемы, кажется, решены с вышеуказанными изменениями.Кажется, я что-то здесь упускаю.