在 NetBeans 中编译任何 JavaFX 项目都会返回 Unsupported major.minor version 52.0 [英] Compiling any JavaFX project in NetBeans returns Unsupported major.minor version 52.0

查看:27
本文介绍了在 NetBeans 中编译任何 JavaFX 项目都会返回 Unsupported major.minor version 52.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到很多类似的问题

但没有一个和我的情况一样.无论如何,我都尝试过他们的解决方案(如果相关),但他们没有帮助.

But none with the same circumstances as mine. I've tried their solutions anyway (when relevant) and they haven't helped.

我在 NetBeans 8.0.2 中创建了一个 JavaFX FXML 应用程序,并且必须手动将 JDK 从 1.7 升级到 1.8 以获得我想要的功能.我相信我对 JRE 和 JDK 都使用了 1.8.0_52,并且该项目编译得很好.然后我的计算机通知我 Java 8 的更新.现在:

I had created a JavaFX FXML Application in NetBeans 8.0.2 and had to manually upgrade the JDK from 1.7 to 1.8 to get features I wanted. I believe I was using 1.8.0_52 for both the JRE and the JDK and the project was compiling fine. Then my computer notified me of an update for Java 8. Now:

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 项目在编译时都会收到上述错误消息,即使是 NetBeans 附带的标准基本 JavaFX FXML 应用程序.Java 7 FXML 可以编译,但 7 缺少重要功能.我开始了指定 8 的新项目,我在 7 中开始了一个新项目,然后将其升级到 8:结果相同.

and suddenly any Java 8 FXML project gets the above error message during compile-time, even the standard basic JavaFX FXML Application that comes with NetBeans. Java 7 FXML will compile but 7 is missing important features. I've started new projects specifying 8 and I've started a new project in 7 and then upgraded it to 8: same result.

我已确保源代码类别中的源代码/二进制格式为 JDK 8,并且项目属性的库类别中的 Java 平台设置为 JDK 1.8.我找不到其他要更新的设置.每次更改设置时,我都尝试过干净的构建.错误发生在 IDE 生成的文件 jfx-impl.xml 中,该文件太大而无法完整发布,超过 4000 行.我在这里发布一部分.classpath="${javafx.ant.classpath}" 是第 406 行,编译器报告错误:

I've ensured that the Source/Binary Format is JDK 8, in the Sources category and the Java Platform is set to JDK 1.8 in the Libraries category of the project's properties. I can find no other setting to update. I've tried a clean build each time I change a setting. The error happens in an IDE-generated file jfx-impl.xml that is too large to post in its entirety, being over 4000 lines. I post a portion here. The classpath="${javafx.ant.classpath}" is line 406, where the compiler reports the error:

<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 中是否存在错误?感谢您的时间 &考虑!

Does anyone have an idea what I'm missing? Is there a bug in NetBeans or in the 1.8.0_60 SDK or JRE? Thanks for your time & consideration!

推荐答案

您必须更改 netbeans.conf 文件中的 netbeans_jdkhome.

You have to change netbeans_jdkhome in netbeans.conf file.

  • 如果 NetBeans 正在运行,请关闭它.
  • 找到文件 C:\Program Files\NetBeans 7.3\etc\netbeans.conf
  • 将参数netbeans_jdkhome"的值更改为所需的 JDK 版本
    例如:netbeans_jdkhome="C:\Program Files\Java\jdk1.7.0_21"
  • 保存文件并再次启动 NetBeans.

来源+更多详细信息:https://joanpaon.wordpress.com/2013/06/11/how-to-change-netbeans-default-java-platform-2/

这篇关于在 NetBeans 中编译任何 JavaFX 项目都会返回 Unsupported major.minor version 52.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆