Quel est l'emplacement de JavaFX fichier JAR, jfxrt.jar sur Linux?
J'essaie de l'exécuter certains JavaFX code avec Eclipse Kepler, avec e(fx)clipse plugin installé, sur une machine Linux à l'aide de:
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)
Ma compréhension est que, bien que JavaFX a été inclus avec le JDK depuis la version JDK 7u6, JavaFX fichier JAR, jfxrt.jar, a été laissé hors du chemin d'exécution Java sur le but jusqu'à plus de tests entre JavaFX et le reste de l'infrastructure java a été achevé. Pour cette raison, vous devez ajouter manuellement le projet de construire des bibliothèques du chemin, lorsque nous créons un nouveau projet Java.
J'ai été à la recherche pour le pot dans les deux répertoires suivants, sans succès:
/usr/lib/jvm/java-7-openjdk-common/jre/lib/
/usr/lib/jvm/java-7-openjdk-amd64/lib
Où dois-je chercher?
- Essayez d'exécuter le shell
locate jfxrt.jar
à voir da emplacement - Le mien est en jdk1.7.0_51/jre/lib, mais c'est à l'aide de la norme JDK, pas OpenJDK.
- Vous pouvez aussi voir ceci: stackoverflow.com/questions/18547362/javafx-and-openjdk
Vous devez vous connecter pour publier un commentaire.
L'emplacement de jfxrt.jar dans Oracle Java 7 est:
L'emplacement de jfxrt.jar dans Oracle Java 8 est:
La
<JRE_HOME>
dépendra de l'endroit où vous avez installé l'Oracle Java et peut différer entre les distributions Linux et des installations.jfxrt.jar n'est pas dans le Linux OpenJDK 7 (qui est ce que vous utilisez).
Un package open source qui fournit JavaFX 8 pour les systèmes basés sur Debian comme Ubuntu est disponible. Pour installer ce package, il est nécessaire d'installer la Debian OpenJDK 8 et de package Debian OpenJFX paquet. Je n'utilise pas Debian, donc je ne suis pas sûr de l'endroit où la Debian OpenJFX package installe jfxrt.jar.
Utilisation Oracle Java 8.
Avec Oracle Java 8, JavaFX est à la fois inclus dans le JDK et est sur le classpath par défaut. Cela signifie que JavaFX classes seront automatiquement trouvé à la fois par le compilateur lors de la compilation et à l'exécution lorsque vos utilisateurs d'utiliser votre application. Donc, l'utilisation d'Oracle Java 8 est actuellement la meilleure solution à votre problème.
OpenJDK Java 8 pourrait inclure JavaFX (comme JavaFX pour Java 8 est maintenant open source), mais cela dépendra de l'OpenJDK paquet assembleurs pour qu'ils choisissent d'inclure JavaFX 8 avec leurs distributions. J'espère qu'ils font, comme il se doit aider à éliminer la confusion-vous vécu dans votre question, et il offre également beaucoup plus de fonctionnalités dans OpenJDK.
Oui, mais seulement l'Oracle JDK.
Le JavaFX version fournie avec Java 7 n'a pas été entièrement open source, de sorte qu'il n'a pas pu être inclus dans l'OpenJDK (qui est ce que vous utilisez).
Dans vous avez besoin pour utiliser Java 7 au lieu de Java 8, vous pouvez télécharger la Oracle JDK pour Java 7 et l'utiliser. Puis JavaFX sera inclus avec Java 7. En raison de la façon dont Oracle configuré Java 7, JavaFX ne sera pas sur le chemin de la classe. Si vous utilisez Java 7, vous aurez besoin de ajouter à votre classpath et l'utilisation appropriée de JavaFX les outils de packaging pour permettre à vos utilisateurs d'exécuter votre application. Certains outils tels que e(fx)clipse et NetBeans JavaFX type de projet va prendre soin de classpath de questions et de tâches d'emballage pour vous.
Le mien se trouve ici sur Ubuntu 18.04 quand j'ai installé JavaFX à l'aide de
apt install openjfx
(comme déjà mentionné par @jewelsea ci-dessus)Sur Ubuntu avec OpenJDK, il a installé dans
/usr/lib/jvm/default-java/jre/lib/ext/jfxrt.jar
(techniquement ses un lien symbolique vers/usr/share/java/openjfx/jre/lib/ext/jfxrt.jar
, mais il est probablement mieux d'utiliser ledefault-java
lien)L'emplacement de jfxrt.jar dans le JDK 1.8 (Windows) est:
XP
.