web-dev-qa-db-fra.com

Quel est l'emplacement du fichier JAR d'exécution JavaFX, jfxrt.jar, sous Linux?

J'essaie d'exécuter du code JavaFX avec Eclipse Kepler, avec le plugin e (fx) clipse 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)

Je crois comprendre que, même si JavaFX est inclus dans le JDK standard depuis la version JDK 7u6, le fichier JAR d’exécution JavaFX, jfxrt.jar, n’a pas été laissé sur le chemin d’exécution Java) entre JavaFX et le reste de l’infrastructure Java est terminée. Pour cette raison, vous devez l’ajouter manuellement aux bibliothèques de chemins de construction du projet lorsque nous créons un nouveau Java projet.

J'ai cherché ce bocal 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ù devrais-je le chercher?

50
Marco Lackovic

L'emplacement de jfxrt.jar dans Oracle Java 7 est:

<JRE_HOME>/lib/jfxrt.jar

L'emplacement de jfxrt.jar dans Oracle Java 8 est:

<JRE_HOME>/lib/ext/jfxrt.jar

Le <JRE_HOME> dépendra du lieu où vous avez installé Oracle Java et peut varier selon les distributions et les installations Linux.

jfxrt.jar n'est pas dans Linux OpenJDK 7 (c'est ce que vous utilisez).


Un paquet open source qui fournit JavaFX 8 pour les systèmes basés sur Debian tel que Ubuntu est disponible. Pour installer ce paquet, il est nécessaire d’installer le paquet Debian OpenJDK 8 et le paquet Debian OpenJFX. Je n’exécute pas Debian, je ne sais donc pas où le paquet Debian OpenJFX installe jfxrt.jar.


Utilisez Oracle Java 8 .

Avec Oracle Java 8, JavaFX est inclus dans le JDK et figure sur le chemin de classe par défaut. Cela signifie que les classes JavaFX seront automatiquement trouvées à la fois par le compilateur lors de la construction et par le runtime lorsque votre Les utilisateurs utilisent votre application. Ainsi, utiliser Oracle Java 8 est actuellement la meilleure solution à votre problème.

OpenJDK pour Java 8 pourrait inclure JavaFX (comme JavaFX pour Java 8 est maintenant open source)), mais cela dépendra des assembleurs de packages OpenJDK choisissez d’inclure JavaFX 8 dans leurs distributions, ce que je souhaite, car cela devrait vous aider à dissiper la confusion que vous avez rencontrée dans votre question et à fournir beaucoup plus de fonctionnalités dans OpenJDK.

Si j'ai bien compris, JavaFX est inclus dans le JDK standard depuis la version JDK 7u6.

Oui, mais uniquement le JDK Oracle.

La version de JavaFX fournie avec Java 7 n'était pas complètement open source) et ne pouvait donc pas être incluse dans OpenJDK (ce que vous utilisez).

Dans vous devez utiliser Java 7 au lieu de Java 8, vous pouvez télécharger le JDK Oracle pour Java = 7 et l'utiliser. JavaFX sera inclus avec Java 7. En raison de la configuration Oracle Java 7, JavaFX ne sera pas Si vous utilisez Java 7, vous aurez besoin de ajoutez-le à votre chemin de classe et utilisez les outils de packaging JavaFX appropriés) pour permettre à vos utilisateurs d’exécuter votre application. Certains outils, tels que e (fx) clipse et le type de projet NetBeans JavaFX, s’occuperont pour vous des problèmes de chemin de classes et des tâches de packaging.

60
jewelsea

Les miens étaient situés ici sur Ubuntu 18.04 lorsque j’ai installé JavaFX avec apt install openjfx _ (comme déjà noté par @jewelsea ci-dessus)

/usr/share/Java/openjfx/jre/lib/ext/jfxrt.jar
/usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/ext/jfxrt.jar
5
Ebrahim Byagowi

Sur Ubuntu avec OpenJDK, il s’est installé dans /usr/lib/jvm/default-Java/jre/lib/ext/jfxrt.jar _ (techniquement, c'est un lien symbolique vers /usr/share/Java/openjfx/jre/lib/ext/jfxrt.jar, mais il vaut probablement mieux utiliser le default-Java lien)

4
Yurik

L'emplacement de jfxrt.jar dans le JDK 1.8 (Windows) est:

C:\Program Files\Java\jdk1.8.0_05\jre\lib\ext\jfxrt.jar
0
kusflo