JavaFX 2.0 + NetBeans + Maven
je crée JavaFX 2.0 application utilisant NetBeans 7.0.1. Quand je crée le projet dans la manière standard tout fonctionne très bien. Malheureusement;) j'ai besoin de Maven projet...
Je n'ai pas trouvé JavaFX 2.0 dans Maven repository, donc mon pom.en ce moment, xml ressemble à ceci:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>ui</artifactId>
<version>0.1</version>
<name>My Project</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>2.0</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${env.JAVAFX_HOME}libjfxrt.jar</systemPath>
</dependency>
</dependencies>
</project>
la variable système JAVAFX_HOME est définie:
C:Usersrach>echo %JAVAFX_HOME%
C:Program FilesOracleJavaFX Runtime 2.0
Compilation va bien, mais quand je démarrer le programme sous NetBeans j'ai eu une erreur:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application at java.lang.ClassLoader.defineClass1(Native Method)
However jfxrt.jar est dans classpath:
C:>echo %CLASSPATH%
C:Program FilesOracleJavaFX Runtime 2.0libjfxrt.jar
quand je démarre mon application depuis la ligne de commande, ça marche très bien.
quand j'installe jfxrt.jar dans le dépôt local à l'application d'exécution ne démarre toujours pas parce qu'il ne peut pas trouver C:Program fichiersOracleJavaFX Runtime 2.0binmat.dll . POM.xml:
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>2.0</version>
<type>jar</type>
</dependency>
effet:
Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:RepositoriesMavenRepojavafxjfxrtbinmat.dll at com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
des idées?
3 réponses
Merci pour votre aide.
ceux qui utilisent JavaFX 2.0 SDK voici des étapes simples
-
Aller à JavaFX 2.0 SDK\rt\lib dans votre environnement (invite de commande)
-
Exécuter mvn install:install-fichier -Dfile=jfxrt.jar-DgroupId=com.oracle-DartifactId=javafx-Dpackaging=jar -Dversion=2.0
-
SDK\rt\ répertoire de votre .m2\repository\com\oracle\javafx directory
4. <dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
la meilleure réponse pour Java 7 actuel, avec empaqueté Java FX 2.0, est:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2</version>
<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
<scope>system</scope>
</dependency>
et ajoutez ceci à L'Action "Run Project" du profil Maven utilisé dans NetBeans:
exec.classpathScope=compile
, Vous pouvez aussi l'utiliser avec le "projet de Débogage", "Projet", "Exécuter le fichier via le main()", "fichier de Débogage via main()", et "fichier de Profil par main()" actions :)
Pour l'instant, cela semble être une solution qui fonctionne..
d'abord, installez le jfxrt.jar:
mvn install:install-file -Dfile=jfxrt.jar -DgroupId=com.oracle -DartifactId=javafx-runtime -Dpackaging=jar -Dversion=2.0
copiez ensuite le dossier bin à partir de L'exécution JavaFX téléchargée dans votre Maven repo local (home/.m2 / repository / com / oracle/ javafx-runtime/)
pas très élégant, mais ça me va..