0

私は単純な javafx アプリケーションを持っています。maven javafx プラグインを試しました。
動作しているように見えますが、コマンド ラインからアプリケーションを起動しようとすると、次のようになります。

Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application

そのため、javafx ライブラリが見つかりません。したがって、Netbeans によって起動される jvm が、コマンドラインから使用する jvm と同じであることを確認します。

これは、Netbeans (7.3) デバッグの最初の行です。

cd C:\Users\agostino\Documents\NetBeansProjects\myapp; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.7.0_21" "\"C:\\Program Files\\NetBeans 7.3\\java\\maven\\bin\\mvn.bat\"" "-Dexec.args=-classpath %classpath com.test.myapp.AppView -Dlog4j.debug=true" "-Dexec.executable=C:\\Program Files\\Java\\jdk1.7.0_21\\bin\\java.exe" process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec

そして、これは私がコマンドラインから行ったテストです:

C:\Users\agostino\Documents\NetBeansProjects\myapp>java -version

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

この jvm バージョンのインストールは 1 つしかないため、同じでなければなりません。

次に、ここで何が起こっているのですか?

アプリケーションの起動をデバッグするのに役立つ他のテストはありますか?

また、javafxアプリケーションをクライアントに配布する場合、このような問題が多く、チューニングが必要になるのではないかと非常に心配しているので、ベストプラクティスは何なのか気になります。

4

1 に答える 1

1

私はzonski/javafx-maven-pluginを使用しています。これが私のセットアップです:

<plugin>
    <groupId>com.zenjava</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>1.5</version>
    <configuration>
        <mainClass>your.main.class</mainClass>
    <vendor>you.name</vendor>
    </configuration>                
</plugin>

Appコマンドラインからを起動する場合:

mvn  jfx:run

スタンドアロン jar にパッケージ化する場合:

mvn jfx:build-jar

jar を起動する場合:

java -jar target/App-1.0-jfx.jar
于 2013-06-06T23:41:08.697 に答える