【Java入門】Java Web Startの使い方(サンプルで解説)

こんにちは!フリーランスの長野です。

Java Web Startって使ってますか?

Java Web Startを使うと、WebサイトからJavaのアプリケーションをダウンロードして実行することができます。

この記事では、Java Web Startについて

・Java Web Startとは
・Java Web Startのインストール

という基本的な内容から

・Java Web Startのサンプル
・起動しない場合の対策

など実用的な内容についても解説していきます。

今回はJava Web Startについて、わかりやすく解説します!

Java Web Startとは

Java Web StartとはJavaのアプリケーションをWebサイトなどから自動ダウンロード、自動インストール、自動アップデートして実行できる仕組みのことです。

Java Web Startを実装するにはJNLPと呼ばれる特別なXMLファイルを作成する必要があります。

JNLPはJava Network Launching Protocolの略です。

現時点(2018/7/10)でのJavaの最新バージョンはJava10ですが、Java Web StartはJava11からは搭載されなくなります

Webブラウザがセキュリティ脆弱対応でプラグイン機構をなくす方向で動いていることが理由です。

Java Web StartもJava9で廃止予定とされていましたが、いよいよJava11からは搭載されなくなります。

Java Web Startのインストール

Java 5.0以降では、Java Web StartはJava Runtime Environment(JRE)に含まれています。

JREをインストールすると、Java Web Startも自動的にインストールされます。

JREについてはこちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】JavaSEとEEの違いやJRE・JDKを世界一分かりやすく解説
更新日 : 2019年4月27日

Java Web Startのサンプル

それではJava Web Startの使い方についてサンプルコードを使って説明します。

サンプルアプリの作成

まずはJavaのサンプルアプリを用意しましょう。

ここではSwingを使ったアプリを用います。

SwingSample.java:

Swingについてはこちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】GUIの開発フレームワークまとめ(Swing、JavaFx、AWT)
更新日 : 2019年4月8日

jarファイルへの署名

Javaアプリはjarファイルに圧縮する必要がありますが、Java Web Startでアプリを配布するには署名が必要です。

まずは先ほどのサンプルアプリをjarファイルに圧縮しましょう。

jarファイルに圧縮する際にマニフェストファイルを作成しますが、マニフェストファイルで「Permissions: all-permissions」を設定しておきます。

manifest.mf

jarファイルを作成するコマンドは下記のとおりです。

jarファイルの作成については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】コマンドで実行する方法(jarファイルの実行も解説)
更新日 : 2019年4月4日

このsample.jarに署名を追加していきます。

ここでは自己署名を追加します。

自己署名とは自分で自分自身を証明する証明書のことです。

Javaのkeytoolコマンドを使ってキーストアを作成します。

パスワードを設定したら、姓名、組織名、地方名、国番号などを入力し、最後に「よろしいですか?」と問われますので「はい」と入力し「Enter」キーを押します。

myKeyStoreファイルが作成されます。

キーストアが作成されたら、Javaのjarsignerコマンドを使ってjarを署名します。

キーストアのパスワードを入力すると、jarが署名されます。

これでJavaアプリのjarファイルの作成は完了です。

MIMEタイプの設定

Java Web StartのMIMEタイプを使用できるようにWebサーバーを設定します。

拡張子「.jnlp」を持つすべてのファイルが「application/x-java-jnlp-file」MIMEタイプとして設定されるようにします。

MIMEタイプを追加する方法は、使用するWebサーバーごとに異なります。

例えばApache Webサーバーの場合、「.mime.types」設定ファイルに次の行を追加します。

application/x-java-jnlp-file JNLP

JNLPファイルの作成

それではJNLPファイルを作成しましょう。

JNLPファイルはXMLドキュメントです。

ここで使うJNLPファイルは以下のとおりです。

sample.jnlp:

jnlpタグ内でcodebase属性にJavaアプリを配布するWebサイトのアドレスを指定し、href属性にJNLPファイルを指定します。

informationタグ内ではJavaアプリの情報を指定します。

securityタグ内ではJavaアプリのアクセス権を設定しています。

resourcesタグ内のjarタグのhref属性でJavaアプリのjarファイルを指定しています。

application-descタグのmain-class属性でJavaアプリのmainメソッドを含むクラス名を指定しています。

JNLPファイルの作成については、公式サイトを参考にしています。

https://docs.oracle.com/javase/jp/7/technotes/guides/javaws/developersguide/syntax.html

HTMLファイルの作成

Javaアプリを配布するWebサイトのHTMLファイルを作成します。

今回使用しているHTMLファイルは次のとおりです。

index.html:

sample.jnlpファイルにリンクしています。

Webサーバーへのデプロイ

作成したsample.jarファイル、sample.jnlpファイル、index.htmlファイルをWebサーバー上の同じファイルにデプロイメント(配置)します。

今回はローカルサーバーのルートディレクトリ直下にJWSsampleフォルダを作成し、そのフォルダ内にデプロイメントしました。

ブラウザでWebアドレスを「http://localhost/JWSsample/index.html」と入力するとWebサイトが表示されます。

JWS Sampleのリンクをクリックすると、Javaアプリがダウンロードされます。

Javaコントロール・パネルでの設定

ダウンロードされるJavaアプリ「sample.jnlp」をダブルクリックすると通常はアプリが起動しますが、今回は自己署名付きのJavaアプリですので、次のようなウィンドウが現れアプリを起動することができません。

Java 7 Update 51以降、自己署名付きのJavaアプリはそれを配布するサイトを例外サイト・リストに含めなければ起動できません

https://java.com/ja/download/help/jcp_security.xml

配布するサイトを例外サイト・リストに含めるにはJavaコントロール・パネルで設定をする必要があります。

ここで紹介するJavaコントロール・パネルはJava10のモノを使用しています。

Javaコントロール・パネルの「Webの設定」から「例外サイト・リスト」タブで「追加」ボタンをクリックします。

Webアドレス(ここでは「http://localhost」)を入力して再度「追加」ボタンをクリックすると場所のリストに掲載されます。

「適用」もしくは「OK」ボタンをクリックして設定は終了です。

これでJavaアプリ「sample.jnlp」をダブルクリックするとアプリが起動します。

またJavaコントロール・パネルの「Webの設定」から「Javaキャッシュ・ビューア」タブでリストにJavaアプリが掲載されます。

Javaアプリをクリックして選択し、実行ボタンをクリックしてもアプリを起動させることができます。

起動しない場合の対策

起動しないもしくは上手く表示されないなどの不具合とその対策については以下のとおりです。

JNLPがXMLで表示される

JNLPファイルがブラウザで見るとXMLで表示されるという場合は、MIME設定がうまく行っていません。

WebサーバーのMIME設定をもう一度確認しましょう。

Javaアプリが起動しない

Javaアプリがダウンロードされたが起動しないという場合は、署名がされていない場合があります。

Javaコントロール・パネルで例外サイト・リストに含めるか、または署名を追加するようにしましょう。

まとめ

今回はJava Web Startについて解説してきましたが、いかがでしたか?

Java Web StartはJavaのアプリケーションをWebサイトで配布することができます。

Java Web Startを利用するためには、JNLPファイルを作成する必要があります。

使いこなすことができるように、この記事を何度も参考にして下さいね!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1
LINEで送る
Pocket

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説