質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

NetBeans

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1973閲覧

NetBeans環境アップグレード後のJavaFXプロジェクトの更新

XCUBE

総合スコア101

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

NetBeans

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/01/13 10:04

NetBeans8.2で開発したJdk1.8のJavaFXアプリケーションをJdk11にバージョンアップすることになりました。
NetBeans8.2ではJdk11のビルド環境が作れなかったので非対応と判断し、NetBeans12.2をインストールしてそちらにJdk11のビルド環境を追加しました。

そのあとNetBeans8.2で作ったJavaFXプロジェクトを開いてプラットフォームをJdk11に切替えようとしたんですが、Jdk11の表示がなく選択できませんでした。
試しに新規プロジェクト(Java with Ant - JavaFX - JavaFX FXMLアプリケーション)の作成を試みたのですが、ここでもJdk11を選択することができませんでした。
サンプルのJavaFXでプロジェクトを作成しようとしても同じでした。

JDKの追加方法については
プロジェクトのプロパティで「ライブラリ - プラットフォームの管理 - プラットフォームの追加」でJDK11のフォルダを選択して問題なく追加されています。

何か設定の不備など考えられることはありますでしょうか?

環境はWindows10 Pro 1909 64bit
インストールしたJDKやNetBeansも64bitです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一般論としてJDK 11以降でJavaFXを使用したアプリケーションをビルドするには

  1. JDKとは別にOpenJFXを外部ライブラリとして使う
  2. JavaFXを含むJDKを使う(Liberica JDK、ZuluFX JDK等)

の2つの方法があります。
これは、OracleがリリースするJDK、即ち Oracle JDK 11 及び Oracle OpenJDK 11 からJavaFXが切り離されたことに起因します。

切り離されたJavaFXに関しては、現在 OpenJFX としてJDKプロジェクトとは別に開発・リリースされています。

次に、NetBeans 12 において、Antプロジェクト(Java with Ant)の子カテゴリ JavaFXは、JDK 8 までの古いテンプレートでJDK 11以降には対応していません。

そこで、NetBeans 8.2 においてAntベースのJDK 8のJavaFXアプリケーションプロジェクトを NetBeans 12およびJDK 11に移行したい場合は、次のような方法を取る必要があります。

  1. NetBeans 12でAntのプロジェクト(≠ JavaFX)を新規作成しソースコードをインポートする
  2. NetBeans 12でMavenまたはGradleプロジェクトを新規作成しソースコードをインポートする

次にJavaFXのライブラリを使用するために、次の様にプロジェクトを作ります。

  1. OpenJFXのJavaFXライブラリをダウンロードしてAntのライブラリに設定
  2. OpenJFXのJavaFXライブラリをmavenリポジトリで参照しmavenまたはGradleプロジェクトで利用
  3. JavaFXを含むOpenJDKディストリビューション(Liberica JDKまたはZuluFX)をプロジェクトで使用する

とします。

JavaFXと言えば櫻庭さんの次のブログが参考になります。
OpenJFX時代のJavaFXの始め方 - NetBeans + Maven編

参照

投稿2021/01/17 12:07

boochnich

総合スコア194

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

XCUBE

2021/01/18 07:36

JavaFXが分離したことは何となく知っていたのですが、現状のAntプロジェクトはJDK11に対応していないんですか。 それか判っただけでもありがたいですが、対策までご教示いただきましてありがとうございました。 回答をいただくまでにも色々と試行錯誤しましたが、JDK11でJavaFXが動作することも大事ですが、最終的にNetBeans8.2のAntプロジェクトで出力したWindowsネイティブパッケージの作成までやりたいのですが、NetBeans12の他のMavenやGradleプロジェクトは対応していないようですし、AntもFXパッケージにするとビルド環境がJDK1.8に戻ってしまうようです。 何かプロジェクトファイルをゴニョゴニョ弄るとできるのかも知れませんが私には難しいと思いますので他のIDEを検討しようかと思っているところです。
boochnich

2021/01/18 14:12

NetBeans 12のAntプロジェクト(≠JavaFX)はJDK 11に対応しています。ただし、AntのJavaFX対応機能がJDK 8までのJavaFXにしか対応していないのが残念です。 Windowsネイティブパッケージの作成は、JDK 14でやっとjpackageコマンドがIncubaterながら導入されました。 GradleプロジェクトでJavaFXアプリケーションをビルドし、Windowsインストーラーを生成するまでのメモを次の日記に書いています。 https://torutk.hatenablog.jp/entry/2020/07/18/220341
XCUBE

2021/01/19 08:19

ネイティブパッケージの件の情報ありがとうございます。 とりあえずパッケージの件は難しそうなのであとでよく調べさせていただきます。 IntelliJ IDEAなども試してみましたが、やはり慣れるまで時間が必要なので一旦NetBeansで進めることにしました。 NetBeans12で慣れているAntで進めようと新規Antでプロジェクトを作成し、FX抜きで簡単なサンプルを動かしてからFXライブラリを追加したら、ビルドでプログラムとは関係ないところで「java.nio.charset.MalformedInputException: Input length = 1」というエラーが出て調べても原因不明だったのでNetBeansを11に下げてみました。 NetBeans11ではビルドは通ったのですが、実行時に「Error occurred during initialization of boot layer」が発生し、VMの設定が必要ということに辿り着いたのですが、設定を何度見直しても上手く行かずに数時間を費やしAntは諦めました。 NetBeans12に戻ってMavenプロジェクトで作成し、AntでダメだったVM設定をして何とか起動するところまでできました。 ただ起動早々にfxmlリソースにアクセスできず画面が表示されることなく終了するなど前途多難という感じですが、いろいろとご教示いただきましてありがとうございました。
XCUBE

2021/01/19 09:34 編集

今Gradleも試してみましたが、一番プロジェクトの設定がわかりずらかったですが、何も設定することなく一番簡単にプロジェクトが作成されてサンプルFXを実行することができました。 パッケージの件も踏まえてもう少しGradleを使ってみます。 重ね重ねありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問