web-dev-qa-db-ja.com

JavaFX-ブラウザに実際にデプロイできますか?

私は昨年、JavaFXについていくつかの研究を行い、さらにそれを使用して基本的なデスクトップアプリを構築しました。

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

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

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

Webブラウザ経由での展開はどれくらい簡単ですか?動作しますか?誰もこれを経験したことがありますか?

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

61
Alexander Mills

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

この質問に興味のある読者には、次のOracleホワイトペーパーを確認することをお勧めします。

上記のペーパーでは、関連テクノロジー(JavaFX/Swing/AWT/Applets/WebStart)に対するオラクルの公式の位置、それらのテクノロジーをサポートする予定の日付、およびそれらのテクノロジーのうちオープンソース開発プロジェクトに移行する予定のテクノロジーの概要を説明しています。 JDKおよびJRE。

Java 9、2017年10月の更新

Java 9リリースノート によると:

アプレットAPI、Javaプラグイン、Javaアプレットビューア、JNLPおよびjavawsツールを含むJava Web Startを含むJavaアプレットおよびWebStart機能は、これらはすべてJDK 9で非推奨となり、将来のリリースで削除されます。

したがって、Java 9+の場合、Javaプラグインを使用したブラウザーでのJavaFXのデプロイは、非推奨のテクノロジーを使用した場合にのみ可能です。 Oracleは、 Java 9リリースノートの別の部分で注意しています

OracleのJDK 9ビルドのJava Plug-inおよび関連するアプレットテクノロジーを廃止します。 JDK 9でも引き続き利用可能ですが、これらのテクノロジーは、将来のリリースでOracle JDKおよびJREから削除されると見なされます。 Webページに埋め込まれたアプレットおよびJavaFXアプリケーションを実行するには、Javaプラグインが必要です。これらのタイプのアプリケーションをJava Web Startまたは自己完結型アプリケーションとして書き換えることを検討してください。

注:Java Web Startは非推奨であるため、実際には代替手段ではありません(とにかく、ブラウザーページ内に埋め込まれて表示されるアプリケーションとは異なります)。

同様の機能を提供する代替手段として、 jpro のようなものを検討してください。これはJavaプラグインなしでブラウザにJavaFXアプリケーションをデプロイします(jproは現在クローズドベータのみです、したがって、それは2017年10月の時点で実行可能なソリューションではありませんが、おそらく将来的には...)。

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


Java 7および8の以前の回答

JavaFx-ブラウザに実際にデプロイできますか?

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

これを可能にするテクノロジーは、 Javaプラグイン です。このプラグインは現在 NPAPI ベースのブラウザプラグインソリューションです。 Javaプラグインは、 Oracle Java 7 Runtime Standard Environment に同梱されています。

すべてのブラウザがサポートされているわけではありません。 JavaFXサポートされている構成ページにリストされているブラウザのみです

Webブラウザーを使用して簡単に展開できますか?

JavaFXプロジェクトをWebブラウザーにデプロイする最も簡単な方法は次のとおりです。

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

これは難しいことではありません(私の意見では)。

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


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

いくつかのアドバイス

ブラウザにJavaをデプロイすることには落とし穴があります。このテーマについてGoogleで独自の調査を行うことをお勧めします。

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

アプリケーションの展開とランタイムの要件を調べます。要件とJavaFXブラウザーベースの実行モデルの知識に基づいて、JavaFXテクノロジーを使用したブラウザーベースの展開がアプリケーションの正しいメカニズムであるかどうかを判断します。

ブラウザに埋め込まれたJavaFXアプリケーションのいくつかの潜在的な困難

一部の重要なブラウザ(例: Internet Explorer 10iOS Safari およびまもなく Desktop Chrome )Javaブラウザープラグインで現在使用されているNPAPIを使用したプラグインの実行を許可しない=>一部のターゲットユーザーがアプリケーションを使用できない場合があります。

ブラウザー組み込みアプリケーションでは、アプリケーションが実行されるランタイム(ブラウザー+ Javaランタイム+プラグインインターフェース)を完全に制御することはできません=>最初にインストールされたときに機能していたアプリケーションは、これらのランタイムコンポーネントの更新後に期待されます。

展開の代替案

ブラウザーベースの展開モデルがアプリケーションに適切でない場合、JavaFXアプリケーションを展開する他の方法 があります (たとえば、WebStart、スタンドアロンjar、自己完結型アプリケーション)。

67
jewelsea

JavaFX-ブラウザに実際にデプロイできますか?

いいえ、それ以上ではありません。

回答usedは、 this answer で与えられているとおり、はいです壁。ただし、2016年の答えは「いいえ」です。最近のブラウザは基本的にNPAPIをサポートしなくなり(FirefoxはJavaをサポートしますが、年末までしかサポートしません)、JavaプラグインにはNPAPIが必要です。

40
T.J. Crowder

2016年の時点では、ブラウザプラグインなしで jpro を使用できます。また、モバイルでも実行されます。

編集1:プロジェクトは、非営利プロジェクトまたはオープンソースプロジェクトに対して無料です。 「hello world」が見つかります here

10
KIC

私は偶然に解決策を見つけました こちら 。私のWebプロジェクトに欠けていたもの。

これをweb.xmlファイルに追加する必要があります。

 <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-Java-jnlp-file</mime-type>
</mime-mapping>
1
kamel2005