La comstackción de cualquier proyecto JavaFX en NetBeans devuelve Major.minor no admitido versión 52.0

Veo una serie de preguntas similares

  • Error de Netbeans 8.0 no compatible major.minor versión 52.0
  • Error de versión 52.0 de major.minor no admitido (duplicado)
  • Ejecutando un JAR comstackdo: Major.minor no compatible versión 52.0
  • No se puede reparar la versión 52.0 major no soportada, incluso después de arreglar la compatibilidad

Pero ninguno con las mismas circunstancias que la mía. He intentado sus soluciones de todos modos (cuando es relevante) y no han ayudado.

Creé una aplicación JavaFX FXML en NetBeans 8.0.2 y tuve que actualizar manualmente el JDK de 1.7 a 1.8 para obtener las funciones que quería. Creo que estaba usando 1.8.0_52 tanto para el JRE como para el JDK y el proyecto estaba comstackndo bien. Entonces mi computadora me notificó una actualización para Java 8. Ahora:

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 

y de repente, cualquier proyecto Java 8 FXML recibe el mensaje de error anterior durante el tiempo de comstackción, incluso la JavaFX FXML Application básica estándar que viene con NetBeans. Java 7 FXML se comstackrá pero a 7 le faltan características importantes. Comencé nuevos proyectos especificando 8 y comencé un nuevo proyecto en 7 y luego lo actualicé a 8: mismo resultado.

Me he asegurado de que el Formato fuente / binario sea JDK 8, en la categoría Fuentes y que la Plataforma Java esté configurada en JDK 1.8 en la categoría Bibliotecas de las propiedades del proyecto. No puedo encontrar otra configuración para actualizar. He intentado una construcción limpia cada vez que cambio una configuración. El error ocurre en un archivo generado por IDE jfx-impl.xml que es demasiado grande para publicarse en su totalidad, con más de 4000 líneas. Publico una parte aquí. El classpath="${javafx.ant.classpath}" es la línea 406, donde el comstackdor informa el error:

           

El mensaje de error es:

 /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) 

¿Alguien tiene una idea de lo que me estoy perdiendo? ¿Hay algún error en NetBeans o en el SDK 1.8.0_60 o JRE? Gracias por su tiempo y consideración!

Tienes que cambiar netbeans_jdkhome en el archivo netbeans.conf.

  • Cierre NetBeans si se está ejecutando.
  • Busque el archivo C: \ Archivos de progtwig \ NetBeans 7.3 \ etc \ netbeans.conf
  • Cambie el valor del parámetro “netbeans_jdkhome” a la versión JDK deseada
    Por ejemplo: netbeans_jdkhome = “C: \ Archivos de progtwig \ Java \ jdk1.7.0_21”
  • Guarda el archivo y vuelve a iniciar NetBeans.

Fuente + información más detallada: https://joanpaon.wordpress.com/2013/06/11/how-to-change-netbeans-default-java-platform-2/

Desinstalé JDK 7, desinstalé NetBeans, reinstalé NetBeans y lo volví a comstackr. No más errores. (cuando desinstalé, dejé el directorio de instalación y la configuración. Cuando volví a instalar, tuve que crear un nuevo directorio, pero NetBeans debe haber mantenido la configuración anterior porque no tenía que cambiar las preferencias ni volver a agregar plugins). Luego reinstalé JDK 7 (porque otros proyectos están en Java 7), volví a probar y todavía estoy funcionando.