NetBeans 7.0.1 を使用してJavaFX 2.0アプリケーションを作成しています。標準的な方法でプロジェクトを作成すると、すべて正常に動作します。残念ながら;) Mavenプロジェクトが必要です...
Maven リポジトリで JavaFX 2.0 が見つからなかったため、現在の pom.xml は次のようになっています。
<?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}\lib\jfxrt.jar</systemPath>
</dependency>
</dependencies>
</project>
JAVAFX_HOME システム変数が設定されています。
C:\Users\rach>echo %JAVAFX_HOME%
C:\Program Files\Oracle\JavaFX Runtime 2.0\
コンパイルは問題なく行われますが、NetBeans でプログラムを起動するとエラーが発生しました:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application at java.lang.ClassLoader.defineClass1(Native Method)
ただし、jfxrt.jar はクラスパスにあります。
C:\>echo %CLASSPATH%
C:\Program Files\Oracle\JavaFX Runtime 2.0\lib\jfxrt.jar
コマンドラインからアプリケーションを起動すると、正常に動作します。
実行時に jfxrt.jar をローカル リポジトリにインストールしても、 C:\Program Files\Oracle\JavaFX Runtime 2.0\bin\mat.dllが見つからないため、アプリケーションは起動しません。Pom.xml:
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>2.0</version>
<type>jar</type>
</dependency>
効果:
Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:\Repositories\MavenRepo\javafx\jfxrt\bin\mat.dll at com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
何か案は?