1. ホーム
  2. browser

JavaFX - ブラウザで本当に展開できるのか?[クローズド]です。

2023-10-16 03:18:30

質問

私は昨年、JavaFXについていくつかの研究を行い、さらにそれを使っていくつかの基本的なデスクトップアプリケーションを作りました。

RIA (Rich Internet Application) を作成するために使用されると説明されています。

http://en.wikipedia.org/wiki/Javafx

しかし、それは 本当に は、Web ブラウザでデプロイできるのでしょうか?私は実行可能な JAR ファイルを介してのみそれをデプロイしてきました。

Web ブラウザ経由でのデプロイは簡単ですか?それはうまくいきますか?どなたか経験のある方はいらっしゃいますか?

http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm

どのように解決するのですか?

2018 年 3 月の Java クライアント ロードマップのアップデート

この問題に関心のある読者は、以下の Oracle Whitepaper を確認することをお勧めします。

上記の論文は、関連技術 (JavaFX/Swing/AWT/Applets/WebStart) についての Oracle の公式見解、これらの技術をサポートする予定の日付、およびこれらの技術のうち JDK と JRE とは別のオープンソース開発プロジェクトに移行する予定のものを概説しています。

2017年10月、Java 9のアップデート

によれば Java 9 リリースノート :

<ブロッククオート

Applet API、Java プラグイン、Java Applet Viewer、JNLP、および javaws ツールを含む Java Web Start の機能は、すべて JDK 9 で非推奨となっており、将来のリリースで削除される予定です。

つまり、Java 9+では、Javaプラグインを使ったブラウザでのJavaFXのデプロイは、非推奨の技術を使ってのみ可能となる。 Oracleは別の部分で Java 9 リリースノート :

<ブロッククオート

Oracle 社の JDK 9 ビルドにおける Java プラグインと関連するアプレット技術を非推奨とします。 JDK 9 ではまだ利用可能ですが、これらの技術は将来のリリースで Oracle JDK および JRE から削除されることが検討されます。 Webページに埋め込まれたアプレットとJavaFXアプリケーションを実行するには、Javaプラグインが必要です。これらのタイプのアプリケーションは、Java Web Start または自己完結型アプリケーションとして書き直すことを検討してください。

注:Java Web Startも非推奨であるため、実際には代替品ではありません(いずれにせよ、ブラウザページ内に埋め込まれてレンダリングされるアプリケーションとは異なるものです)。 また、Web Start を使用したい人のために、Oracle JDK 11+ からは削除されましたが、オープン ソースとして利用可能であることにも注意してください。 OpenWebStart .

同様の機能を提供する代替案として、次のようなものを考えてみましょう。 jpro のような、JavaプラグインなしでブラウザでJavaFXアプリケーションを展開するものを検討してみてください(jproは現在クローズドベータ版のみなので、2017年10月時点では実行可能なソリューションではありませんが、将来的にはいつかは...)。

今のところ、JavaFX アプリケーションをデプロイするのに最適な方法として、私は 自己完結型アプリケーション として、ブラウザの外側で実行することです。


Java 7 および 8 に対する前回の回答

JavaFx - 本当にブラウザで展開できるのか?

はい、JavaFXアプリケーションは、Webブラウザでホストされたhtml Webページ内で実行されるようにデプロイすることができます。

これを可能にする技術は Javaプラグイン . このプラグインは現在 NPAPI ベースのブラウザプラグインソリューションです。 Java プラグインは、出荷時に Oracle Java 7 ランタイム標準環境 .

すべてのブラウザに対応しているわけではなく JavaFX サポートされる構成ページ .

ウェブブラウザ経由でのデプロイは簡単ですか?

WebブラウザでJavaFXプロジェクトをデプロイする最も簡単な方法は。

  1. NetBeansで新しいJavaFXプロジェクトを作成します。 .
  2. 簡単なHelloWorldアプリを開発する .
  3. の説明に従って 最初のJavaFXアプリケーションをデプロイする .

これは(私見ですが)難しくありません。

の詳細リファレンスの指示に従うか、あるいは JavaFXアプリケーションのデプロイ (またはサード・パーティのツールを使用する)。 多くのプロジェクトでは、パッケージングを実行するためにNetBeans IDE以外のツールを使用することがより良いアプローチです。 しかし、一般的には、NetBeans IDEにデプロイメント・パッケージング・タスクを処理させる方が簡単です。


以下の内容は、元の質問への回答とは関係ありませんが、この回答に対するコメントで要求されたいくつかの意見と情報を提供します。

いくつかのアドバイス

ブラウザで Java を展開することには、落とし穴があります。このテーマについて、ご自身で Google で調査されることをお勧めします。

私の考えでは、現在のJavaFX 2.xの展開モデルに基づいて、主要なランタイムコンテナとしてブラウザを必要とするほとんどのアプリケーションタイプにおいて、JavaFXを使用することは適切な解決策ではありません。

アプリケーションのデプロイメントとランタイムの要件を調査してください。要件とJavaFXブラウザベースの実行モデルの知識に基づいて、JavaFX技術を使用したブラウザベースの配置がアプリケーションにとって正しいメカニズムであるかどうかを決定してください。

ブラウザに埋め込まれたJavaFXアプリケーションの潜在的な難点のうちの2つ

いくつかの重要なブラウザ(例えば インターネット エクスプローラー 10 , iOS サファリ そしてまもなく デスクトップ版 Chrome で使用されているNPAPIを使用したプラグインの実行を許可しないため、ターゲットユーザーの一部がアプリケーションを使用できない可能性があります。

ブラウザ組み込みアプリケーションでは、アプリケーションを実行するランタイム(ブラウザ+Javaランタイム+プラグインインターフェース)を完全に制御できない => インストール当初は動作していたアプリケーションが、これらのランタイムのコンポーネントのアップデートにより期待通りに動作しなくなる可能性があります。

デプロイメントの代替案

ブラウザベースのデプロイメントモデルがアプリケーションに適切でない場合、他の方法として、以下のものがあります。 JavaFXアプリケーションのデプロイメント (例:WebStart、スタンドアロンジャー、自己充足型アプリケーション)。