我看到了许多类似的问题
- Netbeans 8.0不支持major.minor版本52.0错误
- 不支持的major.minor版本52.0错误(重复)
- 运行我编译的JAR:不支持的major.minor版本52.0
- 即使修复了兼容性,也无法修复不支持的major.minor版本52.0
但没有一个与我的情况相同。无论如何,我已经尝试了他们的解决方案(相关时),他们没有帮助。
我在NetBeans 8.0.2中创建了一个JavaFX FXML应用程序,并且必须手动将JDK从1.7升级到1.8以获得我想要的功能。我相信我正在使用1.8.0_52用于JRE和JDK,该项目编译得很好。然后我的计算机通知我Java 8的更新。现在:
mc@MC-Desktop:~$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
mc@MC-Desktop:~$ javac -version
javac 1.8.0_60
突然间,任何Java 8 FXML项目在编译时都会收到上述错误消息,甚至是标准的基本错误消息 JavaFX FXML Application
随NetBeans一起提供。 Java 7 FXML将编译,但7缺少重要功能。我已经开始指定8的新项目,我在7中开始了一个新项目,然后将其升级到8:相同的结果。
我确保源/二进制格式是JDK 8,在Sources类别中,Java Platform在项目属性的Libraries类别中设置为JDK 1.8。我找不到其他更新设置。每次更改设置时我都尝试过干净的构建。该错误发生在IDE生成的文件中 jfx-impl.xml
这个太大而不能完整发布,超过4000行。我在这里张贴一部分。该 classpath="${javafx.ant.classpath}"
是406行,编译器报告错误:
<target name="-check-ant-javafx-version" depends="-pre-check-ant-javafx-version,
-set-endorsed-javafx-ant-classpath,-set-javafx-ant-classpath" if="do.check.ant-javafx.version">
<echo message="ant-javafx.jar.location = ${ant-javafx.jar.location}" level="verbose"/>
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant"
classpath="${javafx.ant.classpath}"/>
<condition property="have-fx-ant-init">
<typefound name="javafx:com.sun.javafx.tools.ant:init-ant"/>
</condition>
<property name="ant-javafx-version-already-checked-in-jfximpl" value="true"/>
<echo message="have-fx-ant-init = ${have-fx-ant-init}" level="verbose"/>
</target>
错误消息是:
/home/chris/Projects/Java/FXMLTimer/nbproject/jfx-impl.xml:3438: The following error occurred while executing this line:
/home/chris/Projects/Java/FXMLTimer/nbproject/jfx-impl.xml:406:
java.lang.UnsupportedClassVersionError: com/sun/javafx/tools/ant/Permissions : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1136)
at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1307)
at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1362)
at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1323)
at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1076)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:579)
at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:237)
at org.apache.tools.ant.taskdefs.Antlib.execute(Antlib.java:180)
at org.apache.tools.ant.taskdefs.Definer.loadAntlib(Definer.java:428)
at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:277)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor169.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor169.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:286)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:555)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
BUILD FAILED (total time: 7 seconds)
有没有人知道我错过了什么? NetBeans或1.8.0_60 SDK或JRE中是否存在错误?感谢您的时间和考虑!