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?

6
demandé sur Thinhbk 2011-08-18 14:03:26

3 réponses

Merci pour votre aide.

ceux qui utilisent JavaFX 2.0 SDK voici des étapes simples

  1. Aller à JavaFX 2.0 SDK\rt\lib dans votre environnement (invite de commande)

  2. Exécuter mvn install:install-fichier -Dfile=jfxrt.jar-DgroupId=com.oracle-DartifactId=javafx-Dpackaging=jar -Dversion=2.0

  3. 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>

5
répondu Sarad Thapa 2012-02-20 11:42:12

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

3
répondu Infernoz 2013-06-16 17:10:55

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..

2
répondu Kristian 2011-10-11 08:12:38