1
2

More than 1 year has passed since last update.

Windows10にEclipseを入れてJavaアプレットを動かすまで

Last updated at Posted at 2021-09-21

Windows101(64ビット版)が入っているパソコンに日本語化されたEclipse2をインストールしてJavaアプレット3を動かします。

1. 要点

  • Java開発キット(Java Development Kit;JDK)と日本語化された統合開発環境Eclipse(自動初期設定機能付き)を1つにまとめたものが「Pleiades All in One Eclipse」という名前で配布されています。

  • Pleiades All in One Eclipseは圧縮ファイル(ZIP)で配布されていますが、Windows 10標準のファイル解凍機能は長いパス名を扱えない欠陥がありますので、正常に解凍できません。長いパス名に対応している7-Zipなどの解凍ソフトが必要となります。

  • 解凍したフォルダのpleiades\eclipse\eclipse.exe4を実行すると、初めての場合は初期設定が自動で行われます。必要に応じてエディタの設定を行ったり、eclipse.exeへのショートカットを作成したりするとよいでしょう。

  • Javaアプレットを使用するには、Java実行環境(Java Runtime Environment;JRE)のバージョンをJava1.8(Java 8と同義)に変更しておきます。

2. 7-Zipのインストール

7-Zipをインストールします5。たとえば窓の杜のここからダウンロードすることができます。

ダウンロードされたインストーラー(ここでは7z1900-x64.exe)を実行します6。「Install」をクリックするとインストールされます。
image.png

インストールに成功したら「Close」をクリックしてウィンドウを閉じましょう。
image.png

7-Zipの日本語化

7-Zipをインストールするとエクスプローラーの右クリックメニューに「7-Zip」という項目が追加されますが、もしサブメニューの中身が日本語になっていなければ次の手順で日本語化できます。まず7-Zipをスタートメニューから起動します。
image.png

7-Zipが起動したらメニューの「Tool」から「Options...」を選びます。
image.png

「Language」タブで「Japanese (日本語)」を選び、「OK」をクリックします。
image.png
いったんログオフして再度ログインすると7、エクスプローラーの右クリックメニューに設定が反映されているはずです。

3. Pleiades All in One Eclipseのインストール

配布サイトからPleiades All in One Eclipseをダウンロードします。2021年9月現在、「Eclipse 2021(最新版)」をクリックすると「リリース 2021-09」のページへとジャンプします。

Windows 64bit、Full Edition、Javaを選びます。「Download」をクリックすると、Zip形式の圧縮ファイルのダウンロードが始まります。ファイルサイズが約1.9GBと大きいので注意してください。時間があるときに気長にダウンロードしてみましょう。

自動的にダウンロードが始まらない場合は、自分でリンクをクリックしてダウンロードを開始してください。

ファイルがダウンロードされたフォルダを開き8、そのファイルを右クリックして「7-Zip」で展開します9。ここでは「展開...」(日本語化してない場合は「Extract files...」)を選びます10。くれぐれもWindows標準の解凍機能を使わないようにしてください。
image.png

続けて現れるダイアログボックスで、展開先をCドライブ直下(C:\)とし11 12、その下のチェックを外します。「OK」をクリックすると展開が始まります。
image.png

展開が終わったら、C:\pleiades\eclipse\eclipse.exeを探します。これがEclipseの実行ファイルです。実行してみましょう。初回は自動的に初期設定が行われるので、起動に少し時間がかかります。
image.png

しばらくすると「ワークスペース13」を選択するダイアログボックスが表示されます。まずはデフォルトのワークスペースを使うことにして「起動」してしまって構わないでしょう。
image.png

おめでとうございます。ひとまずEclipseが起動しました。
image.png

Eclipseのショートカットを作る

毎回eclipse.exeを探して実行するのは面倒なので、デスクトップなどにショートカットを作っておくとよいでしょう。eclipse.exeを右クリックして「コピー」を選び、
image.png

そのあと、デスクトップなどを右クリックして「ショートカットの貼り付け」を選ぶと、
image.png

できあがりです。
image.png

Eclipseのショートカットにワークスペースを指定する

ショートカットのプロパティを編集することで、そのショートカットから起動したときに使用するワークスペースを指定することができます。
image.png

ショートカットのリンク先がC:\pleiades\eclipse\eclipse.exeになっていると思いますが、この後に半角スペースを入れ、続けて -data "ワークスペースにしたいフォルダ名"を追加します。たとえば、デスクトップの中の私用というフォルダの中にworkというフォルダを作ってそれをワークスペースにするのであれば以下のように14リンク先を編集して「OK」をクリックします。

リンク先
C:\pleiades\eclipse\eclipse.exe -data "%USERPROFILE%\Desktop\私用\work"

image.png
次にこのショートカットを使ってEclipseを起動したときには、指定された通りのフォルダをワークスペースとして使用することになります15

異なるワークスペースを指定した複数のショートカットを作っておいて、起動時にワークスペースを使い分けることも可能です。

Eclipseの設定

Pleiades All in One Eclipseでは、かなり良い感じに初期設定をしてくれるのですが、追加で設定を行います。上部メニューから「ウィンドウ」-「設定」を選びます。
image.png

設定ダイアログが開いたら「Java」-「エディター」-「保存アクション」と辿って「ソース・コードのフォーマット」と「追加アクション」にチェックをしておくと(通常は)幸せになれます16。「適用して閉じる」をクリックしておきましょう。
image.png

4. Eclipseを使う

アプリケーションを作る

初期状態では、画面左の「プロジェクト・エクスプローラー」に「ワークスペースにプロジェクト17がありません」と表示されています。なので、ここではまず「Javaプロジェクト」を作成してみましょう。
image.png
画面に見えている「Javaプロジェクトの作成」ボタンをクリックしても、上部メニューから「ファイル」-「新規」-「Javaプロジェクト」と辿っても構いません。

「新規Javaプロジェクト」ダイアログが表示されます。ここでは例としてプロジェクト名をtestとします。また、使用するJREをJavaSE-1.8に変更します。あとで、このプロジェクト内でアプレットを使いたいからです。このJREの選択を忘れるとアプレットが動きません18
image.png

Java言語でプログラムを構成する単位となるのはクラスというものです。1つのJavaプロジェクト内には、複数のクラスを作ることができます。testプロジェクト内にTest1というクラスを作ってみましょう。上部メニューから「ファイル」-「新規」-「クラス」と辿ります。プロジェクト・エクスプローラー内を右クリックして同様のメニューを使っても構いません。

「新規Javaクラス」ダイアログでクラスの名前をTest1にし、public static void main(String[] args)というメソッド・スタブにチェックを入れて19、「完了」をクリックします。
image.png
パッケージ20名として(プロジェクト名testから類推された)testがデフォルトで入力されていますが、あまり気にしなくてもよいです。

プロジェクト内にTest1.javaというファイルが作成され、その内容が右側のエディターに表示されます。7行目にHello worldと出力する命令を書いてみます。
image.png

コピペ用 Test1.java
package test;

public class Test1 {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		System.out.println("Hello world");
	}

}

上部メニューから「実行」-「(4つ目の)実行」-「Javaアプリケーション」を選んで実行してみましょう(2回目からは「実行」-「(1番上の)実行」、あるいはCtrl+F11を押してもよい)。
image.png

画面右下の「コンソール」に「Hello world」と出力されたら成功です。
image.png

アプレットを作る

今度はtestプロジェクト内にアプレットを作ってみます。JREがJavaSE-1.8に変更されていないと動きません。次のように新規クラスを作ります。例として、クラス名はTestApplet1とします。スーパークラスにjava.applet.Appletを指定します(大文字と小文字の区別に注意)。
image.png

プロジェクト内にTestApplet1.javaというファイルが作成されます。これは(何もしない)立派なアプレットです。
image.png

上部メニューより、Javaアプレットとして実行できます。
image.png

真っ白な(何もない)ウィンドウが表示されたら成功です。
image.png
気が済んだら「×」を押して閉じましょう。

アプレットのデフォルトの幅と高さ

アプレット実行時のデフォルトのサイズを変えたいときは、「実行」-「実行構成...」のダイアログを開き、「パラメーター」のタブにある「幅」と「高さ」の値を変更します。
image.png

アプレットのgetCodeBase()getDocumentBase()

アプレットのメソッドのgetCodeBase()getDocumentBase()で参照される場所は、「実行構成」の中の「引数」の「作業ディレクトリ」です。デフォルトはプロジェクトのフォルダーの中のbinフォルダーです。

もし分かりにくければ、アプレット中で、実際にどこが参照されているかコンソールに書き出してみればよいでしょう。

コピペ用 ImageTest1.java
package test;

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class ImageTest1Applet extends Applet {
	Image img;

	@Override
	public void init() {
        // どこが参照されているか書き出す。
		System.out.println(getCodeBase());
		System.out.println(getDocumentBase());

		img = getImage(getDocumentBase(), "Sample.jpg");
	}

	@Override
	public void paint(Graphics g) {
		g.drawImage(img, 0, 0, this);
	}
}

アプレットでアニメーションさせるとチラつく

とりあえず、次のようにupdateメソッドをオーバーライドしておけば、(アニメーションでチラつくことは)なくなります21

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
	private Image offscreen = null;

	@Override
	public void update(Graphics g) {
		Dimension size = getSize();

		if (offscreen == null || offscreen.getWidth(this) != size.width || offscreen.getHeight(this) != size.height) {
			offscreen = createImage(size.width, size.height);
		}

		Graphics gg = offscreen.getGraphics();
		try {
			super.update(gg);
			g.drawImage(offscreen, 0, 0, this);
		} finally {
			gg.dispose();
		}
	}

TODO (執筆するかも)

  • ファイルのリダイレクト ⇒ 「実行」-「実行構成...」から「共通」の中の「標準入出力」で設定
  • データファイルを置くフォルダ
  • Java 1.8(pleiades\java\8\bin\javaw.exe)の高DPI設定
  • macOS
  1. Windows 10には「Home」と「Pro」がありますが、どちらでも構いません。Windows 11でも大丈夫そうです。

  2. Eclipseはいわゆる統合開発環境というものの1つです。メモ帳とコマンドプロンプトとJDKさえあれば、それらを使ってJavaプログラムを作成・実行することは可能ですが、非常に面倒なので人は統合開発環境を使うのです。

  3. Javaアプレットとは、90年代後半に流行った、動的なWebコンテンツを作成する技術の1つです。Flashの台頭やその後のAjaxの隆盛とともに駆逐され、完全に見捨てられてしまった技術ですが、教育用には細々と使われていたりします。(動作する最小の「おまじない」サイズも小さく(java.applet.Appletから継承したクラスを作るだけ)、初めての方に説明するときは、なんやかんやで便利です。もしアプレットの代わりにSwingを使うとしたらこれみたいな「おまじない」になるでしょうが、この意味となぜ必要かを理解するにはちょっと時間が掛かるかも。)

  4. 半角バックスラッシュ\は、日本語だと半角円記号¥みたいに表示されたりします。(ASCIIの範囲では)同じものです。日本語キーボードから入力するときはEnterキーの左上の「¥」キーを使ってください。Enterキーの左下の方にある「\」キーを使って入力してもよいですが、同じく半角円記号¥が表示されると思います。

  5. 長いパス名が扱えるのなら7-Zip以外のソフトを使って配布ファイルを解凍しても構わないのですが、この記事では7-Zipを使って解凍方法の説明をしています。

  6. ブラウザーから「開く」ことができない場合、インストーラーは(自分でダウンロードするフォルダを指定してなければ)おそらく「ダウンロード」というフォルダに保存されていますので、それを探して開きましょう。

  7. 要はエクスプローラーを再起動する必要があります。タスクマネージャーから再起動するだけでもよいです。

  8. ブラウザーから「開く」を選んでしまうと、Windows標準の解凍機能を使ってしまって正常に解凍できないという現象が起こります。ダウンロードされたファイルはおそらく「ダウンロード」フォルダに保存されています。あせらず「ダウンロード」フォルダを開いて作業してください。

  9. Windows 11だと、デフォルトでは右クリックしても「7-Zip」うんぬんは見当たりませんが、「その他のオプションを表示」をクリックするとちゃんと出てきます。

  10. メニューの最後に付いている「...」が大事です。ここをクリックしてもすぐに何か実行されるわけではなく、実行オプションを選ぶダイアログが表示されるという意味です(たぶん)。

  11. もう一度書いておきますが、半角バックスラッシュ\は半角円記号¥の意味です。日本語キーボードであればEnterキーの左上の「¥」で入力してください。

  12. 理由は2つ。1つは、長いパスに対応していないアプリケーションの誤動作をできる限り防ぐため。もう1つは、展開パスを統一しておいた方があとの説明が楽だからです。さまざまなEclipseのバージョンを同時に運用する可能性があるときは、C:\pleiades\2021-09\eclipse\のようなフォルダ構成で解凍してもよいかもしれません。

  13. ワークスペースとは、Eclipseの用語で、作ったプログラムやデータや様々な設定など、なんやかんやを保存しておく作業フォルダのことです。Eclipseを起動するときに1つ選ぶ必要があります。

  14. %USERPROFILE%というのは、Windowsにおいてそれぞれのアカウントのユーザーフォルダになります。なので、%USERPROFILE%\Desktopはそのアカウントのデスクトップフォルダというわけです。

  15. ワークスペースに指定したフォルダが存在しなければ、勝手に作成されます。

  16. 独自のコーディング規約に従っているプロジェクトのファイルを編集するときは、この設定をオフにしないと地獄を見ます。地獄への道はIDEの善意で実装されている。

  17. プロジェクトとは、Eclipseの用語で、プログラムやデータなどをひとまとめにして管理する単位となります。つまり普通の日本語の意味での「プロジェクト」と思ってよいでしょう。

  18. アプレットを使わないプロジェクトであれば、そのまま最新のJREを使ってもらって構いません。

  19. チェックを入れておくと、ファイル生成時にmainメソッドを付け足しておいてくれます。もちろん、あとで自分で書いても構いません。

  20. パッケージとは、Java言語の用語で、クラスが属する名前空間を提供するものです。平たく言うと、クラスの「苗字」みたいなものです。クラス名が同じでも、パッケージ名によって区別をつけることができます。

  21. リサイズはチラつきます。本当はjavax.swing.JComponentでの実装のように、updatepaintを呼ぶだけにして、paintの中にダブルバッファリングのコードを書くべき。で、実際に描画するコードはpaintComponentみたいな別の名前のメソッドに書いておいて、それをpaintから呼んで、...ってもうそれjavax.swing.JApplet使えばよくない?

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2