5

そのため、javafx 用の単純な helloworld アプリを実行しようとしていますが、そのパッケージが見つかりません。わかりましたので、ある種のパスの問題であるに違いありませんか?

ここから共同バンドルされたバージョンをダウンロードしました。

http://www.oracle.com/technetwork/java/javafx/downloads/index.html

SE パッケージがインストールされたのと同じように、co-bundled がインストールされることを期待するでしょう。私はネットを検索しましたが、人々はWindowsの答えをMacの問題へのWindowsパスで提供します。あなたが言ったように共同バンドルして両方をインストールするか、それらを別々に保つかのどちらかであるため、これは本当にIMOのJavaの問題です!

javafx をコンパイルに含めるための適切な解決策をまだ見つけていません。これには、長いパスを含める必要はありません。

編集: netbeans をインストールして javafx プロジェクトを作成した後、適切なパッケージを見つけるのに問題はありませんでした。この時点で、FX が SE バージョンと一緒にバンドルされていることは明らかだと思いますが、彼ら (Java メンテナー) は、コマンド ラインから FX を動作させることを明らかに不安にさせることにしました。このさもなければばかげた決定についての洞察はありますか?

4

3 に答える 3

4

いくつかの選択肢:

  1. JavaFXをデフォルトのランタイム クラスパスに配置するJavaFX 8を使用します。
  2. アプリケーションにコードを挿入してJavaFXを検出するOracle JavaFXデプロイメント・ツールを使用してアプリケーションをパッケージ化します。
  3. 上記のいずれも実行できない場合は、jfxrt.jar へのパスをコンパイルおよびランタイム クラスパスに手動で追加します。

3 の場合、jre の jfxrt.jar は次の場所にあります。

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

jdk7 がインストールされている場合は、次のようなコマンド ラインから JavaFX アプリ (JavaFX デプロイ ツールを使用してパッケージ化) を実行できます。

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
java -version
java -jar application.jar

JRE7 だけがインストールされていて、JDK がインストールされていない場合は、次を使用できます。

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -jar application.jar
于 2013-02-17T00:32:20.577 に答える
2

Jewelsea の回答のオプション #3 に従って、ant ビルド ファイルでの外観は次のとおりです。

<property name="jfx.dir" value="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib"/>

<path id="project.class.path">
    <pathelement path="${classpath}"/>
    <pathelement location="${jfx.dir}/jfxrt.jar"/>
</path>

<target name="compile"
    description="Compiles the source code.">
    <mkdir dir="${classes.dir}"/>
    <javac includeantruntime="false"
        srcdir="${src.dir}" 
        destdir="${classes.dir}">
        <classpath refid="project.class.path"/>
        <exclude name="**/package-info.java"/>
    </javac>
</target>
于 2013-07-09T17:07:35.710 に答える