son para not necesarios los faltan exist esta ejecutar does componentes cannot application aplicación java linux eclipse javafx openjdk

java - para - openjfx



¿Cuál es la ubicación del archivo JAR JavaRX runtime, jfxrt.jar, en Linux? (3)

En Ubuntu con OpenJDK, se instaló en /usr/lib/jvm/default-java/jre/lib/ext/jfxrt.jar (técnicamente es un enlace simbólico a /usr/share/java/openjfx/jre/lib/ext/jfxrt.jar , pero probablemente sea mejor usar el enlace default-java )

Estoy intentando ejecutar algunos códigos JavaFX con Eclipse Kepler, con el plugin e(fx)clipse instalado, en una máquina Linux, usando:

java version "1.7.0_21" OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-5) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

Según tengo entendido, aunque JavaFX se ha incluido con el JDK estándar desde la versión JDK 7u6, el archivo JAR JavaRX runtime, jfxrt.jar, se dejó fuera de la ruta de tiempo de ejecución de Java a propósito hasta que se realicen más pruebas entre JavaFX y el resto de la infraestructura de Java. sido completado. Por este motivo, debe agregarlo manualmente a las bibliotecas de ruta de compilación del proyecto cuando creamos un nuevo proyecto Java.

He estado buscando ese jar en los dos directorios siguientes sin éxito:

/usr/lib/jvm/java-7-openjdk-common/jre/lib/ /usr/lib/jvm/java-7-openjdk-amd64/lib

¿Dónde más debería buscarlo?


La ubicación de jfxrt.jar en JDK 1.8 (Windows) es:

C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/jfxrt.jar


La ubicación de jfxrt.jar en Oracle Java 7 es:

<JRE_HOME>/lib/jfxrt.jar

La ubicación de jfxrt.jar en Oracle Java 8 es:

<JRE_HOME>/lib/ext/jfxrt.jar

El <JRE_HOME> dependerá de dónde instaló Oracle Java y puede diferir entre distribuciones e instalaciones de Linux.

jfxrt.jar no está en el Linux OpenJDK 7 (que es lo que estás usando).

Un paquete de código abierto que proporciona JavaFX 8 para sistemas basados ​​en Debian como Ubuntu está disponible. Para instalar este paquete, es necesario instalar tanto el paquete Debian OpenJDK 8 como el paquete Debian OpenJFX. No ejecuto Debian, así que no estoy seguro de dónde se instala el paquete Debian OpenJFX jfxrt.jar.

Usa Oracle Java 8 .

Con Oracle Java 8, JavaFX está incluido en el JDK y está en el classpath predeterminado. Esto significa que las clases JavaFX se encontrarán automáticamente tanto por el compilador durante la compilación como por el tiempo de ejecución cuando los usuarios usen la aplicación. Entonces, utilizar Oracle Java 8 es actualmente la mejor solución para su problema.

OpenJDK para Java 8 podría incluir JavaFX (ya que JavaFX para Java 8 ahora es de código abierto), pero dependerá de los ensambladores de paquetes OpenJDK en cuanto a si eligen incluir JavaFX 8 con sus distribuciones. Espero que lo hagan, ya que debería ayudar a eliminar la confusión que experimentó en su pregunta y también proporciona una mayor funcionalidad en OpenJDK.

Mi entendimiento es que aunque JavaFX ha sido incluido con el estándar JDK desde la versión JDK 7u6

Sí, pero solo el Oracle JDK.

La versión de JavaFX incluida con Java 7 no era completamente de código abierto, por lo que no se podía incluir en OpenJDK (que es lo que está utilizando).

Si necesita usar Java 7 en lugar de Java 8, puede descargar Oracle JDK para Java 7 y usarlo. Entonces JavaFX se incluirá con Java 7. Debido a la forma en que Oracle configuró Java 7, JavaFX no estará en la ruta de clase. Si usa Java 7, deberá agregarlo a su classpath y utilizar las herramientas de empaquetado JavaFX apropiadas para permitir que los usuarios ejecuten su aplicación. Algunas herramientas como e (fx) clipse y el tipo de proyecto NetBeans JavaFX se ocuparán de los problemas de classpath y las tareas de empaquetado por usted.