いざ、調布
Javaは独学で少し勉強してましたが、しっかり理解できていなかったので、今回、有限会社ナレッジデザインの山本道子さんが調布で行っていたJava言語セミナーに行ってきました。
主催
アドバンスドソフトウェア株式会社
感想としては、非常に分かりやすく説明してくれて初心者の自分としてはありがたかったのですが、内容がボリューミーなのでもっと時間が欲しいと感じました。
(社内研修もやってるといっていたので新入社員の方が羨ましいです。)
早速講習の内容をメモしておくことにしました。
Java
1995年にJavaテクノロジーというものが発表され、急速に広まる。
の3つを総称してJavaというようです。
1996年1月、Javaの開発環境であるJDK1.0がリリースされます。
その後、様々な機能が改良・追加され、現在に至ってるそうです。
※Javaは、米国のサン・マイクロシステムズ(Sun Microsystems, inc.) が開発したソフトで、現在は企業買収で米国のオラクル(Oracle America, inc.) から提供されてます。
Javaの特徴
- Write Once, Run Anywhere(一度書けばどこでも動く)
- JVM(Java Virtual Machine)による処理
- 開発環境と実行環境が無償公開
- オブジェクト指向
- 充実したクラスライブラリ
1. Write Once, Run Anywhere(一度書けばどこでも動く)
Javaはプログラムとそれを動かすOSとの間に依存関係がなく、OSの違いを気にせず開発できるようです。同じプログラムをWindows、Linux、Macの全てで動かせるようです。C言語などは、Windows用、Linux用、Mac用とOSごとにプログラムが必要なようです。
2. JVM(Java Virtual Machine)による処理
JavaのプログラムはOS上で直接動くのではなく、JVM(Java仮想マシン)と呼ばれる実行環境上で動くようです。
3. 開発環境と実行環境が無償公開
Javaは、発表当初から基本技術の全てを無償公開しているようです。
Javaの開発環境や情報は、インターネットからダウンロードできます。
4. オブジェクト指向
安全で効率の良い開発ができると言われているオブジェクト指向が使用できます。
大規模なシステムの開発には、特に向いてるようです。
5. 充実したクラスライブラリ
クラスライブラリは、よく使う機能をプログラムとしてまとめたものです。
Javaには、このクラスライブラリが標準で提供されてます。
ライブラリは、機能の集合という意味でAPI(Application Program Interface)と呼ばれるようです。
Javaプラットフォームとエディション
Javaのプラットフォームには3つのエディションがあるようです。
プラットフォーム(エディション) | 内容 |
---|---|
Java SE (Java Platform, Standard Edition) |
Javaの基本的なソフトウェア開発に必要な開発環境 |
Java EE (Java Platform, Enterprise Edition) |
Webアプリケーションなどの開発を含む、エンタープライズ(大規模)向けの開発環境 |
Java ME (Java Platform, Micro Edition) |
携帯電話やモバイル端末、家電などコンピューター以外のプラットフォーム向け開発機構 |
プラットフォーム(英: computing platform)とは
コンピュータにおいて、主に、オペレーティングシステム (OS) やハードウェアといった基礎部分を指す。
プラットフォーム非依存とは、それら特定のOS、ハードウェアに依存せずに動作するプログラムのこと。
例えば、Javaは各プラットホームにおいてJavaアプリケーションが動作する仮想のプラットホームを実装することによって、プラットフォーム非依存を実現させている。ちょうど異なるプラットフォーム上に介在としてJavaプラットフォームという仮想化された共通プラットフォームがあり、共通プラットフォーム上でJavaアプリケーションが動作する。
またプラットフォームの差異をミドルウェアで吸収し、複数のプラットホームで動作するように設計したソフトウェアをクロスプラットフォームとよぶ。
何はともあれ、Javaでの開発にはJava SEのインストールは必須のようです。
パソコン内のソフトウェアのイメージ図(Javaの開発)
Java SEでできること
クライアント/サーバーシステムやスタンドアローンのアプリケーションを作成する場合はJava SEのみでも開発可能のようです。
クライアント/サーバーシステムとは、分散アプリケーションの一形態です。
システム全体を、サービスの要求側の『クライアント』とサービスの提供側の『サーバ』とに分け、両者が協調して全体のアプリケーションサービスを実現します。
通常、クライアント/サーバシステムは、2層分散処理システムと呼ばれ、多くの場合クライアント/サーバ間の通信プロトコルにTCP/IPが利用されますが、Java SEはTCP/IPによる通信機能をクラスライブラリとして持っているようです。
スタンドアローン 【 stand alone 】 スタンドアロン
スタンドアローンとは、機器やソフトウェア、システムなどを、他と接続せずに単独で使用すること。
コンピュータや情報機器などについて用いる場合は、通信機能を介して他の機器や通信ネットワークと接続せずに、孤立した状態で使用することを指すことが多い。
ソフトウェアについて用いる場合は、他のソフトウェアの機能に依存せず、単体で実行・利用可能であるという意味であることが多い。
⇩ 2層分散システムについての説明は下記サイトへ
Java SEの構造
Java SEには様々なテクノロジーが集結してますが、大きくまとめると3つに分類できるようです。
http://www.oracle.com/technetwork/java/javase/tech/index.htmlより引用
Javaが提供するクラスライブラリ。アプリケーションでよく使われるような機能を実装したクラスが用意されてるようです。
2. JRE(Java SE Runtime Enviroment)
Javaプログラムの実行環境。
Java仮想マシン(JVM:Java Virtual Machine)と呼ばれるソフトウェアを中心に、関連するプログラムファイルや設定ファイルなどで構成されてるようです。
Javaで開発されたソフトウェアは特定のコンピュータの機種やOSに依存しない独自形式のプログラムとして配布され、これを直接コンピュータ上で起動して実行することはできない。
JRE(に含まれるJVM)は独自形式のプログラムをそのコンピュータで実行可能な形式に自動的に変換し、実行する。
3. JDK(Java SE Development Kit)
javaプログラムの開発環境。.javaファイル(人間が作成したプログラム、つまりソースコード)を機械(JVM)が読み取れるように.classファイルに変換するjavac( Javaコンパイラで、ソースコードをJavaバイトコードに変換する。)も含まれます。
javacコマンドで、.javaファイルを.classファイルに変換 = コンパイル。
Javaの開発環境を構築
Javaで開発を始めるには、 JDK(Java SE Development Kit )をインストールします。JDKの最新版はJDK 8 (2015年6月)のようです。
開発効率を上げるにはEclipseなどの統合開発環境をインストールしたほうが良いようですが、今回はEclipseは使わずコマンドプロンプトで作業していくのでJDKをインストールします。
※Eclipseを使う場合は、Eclipse自体にJDKが含まれてるようなのでEclipseをインストールするだけで、Javaの開発ができるようです。
⇩ 詳しくは下記サイトへ
・エクリプスを利用するためにJDKをインストールしてWindowsの環境変数... - Yahoo!知恵袋
JDKをインストール
Java SE Development Kit 8 - Downloads のページを開きます。
2016年1月31日において、バージョンが8u71と8u72とがありますが、今回は8u71を選択しました。
『Accept License Agreement』を選択クリックします。
自分はWindows7(64bit)を使っているので、『Windows x64』を選択しました。
『JDKのインストーラー実行ファイル』がダウンロードされるので、ダブルクリックします。
『はい(Y)』 ボタンを選択クリックします。
『次(N)>』ボタンをクリック選択します。
特に何も変更せず『次(N)>』 へボタンを選択クリックします。
ここも特に何も変更せず『次(N)>』 へボタンを選択クリックしました。
インストールが完了しました。『次のステップ(N)』『閉じる(C)』どちらかを選択します。
Path 環境変数の設定
環境変数はどのフォルダで作業していても作成したプログラムのコンパイル、実行を簡単に行えるようにする仕組みのようです。
『スタート』>『コントロールパネル』 を選択します。
『システムとセキュリティ』を選択します。
『システム』を選択します。
『システムの詳細設定』を選択します。
『環境変数(N)』を選択します。
『システムの環境変数(S)』の『Path』を選択した状態で『編集(I)』を選択します。
変数値(V)の先頭に、JDKのインストール先である『C:¥Program Files¥Java¥jdk1.8.0_71¥bin;』を追加します。数字の部分はインストールしたJDKのバージョンによって変わるのでインストールしたバージョンに合わせます。
(※元からある変数値を消さないように気をつけましょう。コピーしてテキストエディターなどで編集すると良いかもしれません。)
C:¥Program Files¥Java¥jdk◯.◯.◯_◯◯¥bin;
追加したら『OK』をクリックします。
環境変数が正しく設定できてるか確認します。
『スタート』>『すべてのプログラム』>『アクセサリ』>『コマンドプロンプト』と選択します。
バージョン確認コマンドを実行してバージョンが表示されればOKです。
javac -version
java -version
Javaプログラムのコンパイルと実行
環境変数の設定ができたので、Javaプログラムを実行できるようになってます。
Javaプログラムを実行する手順は、
1. プログラムを作成
Javaでは、Shift_JIS、UTF8なども『サポートされているエンコーディング』に入っているので、テキストエディターはだいたいどれを使っても大丈夫かと思われます、たぶん。
⇩ 詳しくは下記サイトへ(Java SE7の情報ですがJava SE8にも対応してると信じて)
Javaのソースファイル作成時の掟
- ファイルを保存する際の拡張子は『.java』 です。
- ファイル名は半角英数字で。
- 全角スペースは使用禁止。
- 英字の大文字・小文字は厳密に区別される。
実際にファイルを作成
今回は、C:¥sample¥java01¥hello.javaとなるようにhello.javaファイルを作成します。
Cドライブ直下に『sample』フォルダを作成し、その中に『java01』フォルダを作成し、その中に『hello.java』ファイルを作成します。
class hello{ public static void main(String[] args){ System.out.println("Hello"); } }
javacコマンドでコンパイル
JVM(Java仮想マシン)がプログラムを実行できるように、人間が記述したjavaファイル(ここではhello.javaファイルのこと)をjavacコマンドでコンパイルし、拡張子が『.class』のファイルを作成します。
『.class』ファイルは、hello.javaファイルが格納されてるフォルダ(ここではjava01フォルダ)と同じところに作られます。
フォルダ構成とコンパイル
コマンドプロンプトで、cdコマンドでフォルダまで移動し、javacコマンドでhello.javaファイルをコンパイルします。
cd ¥sample¥java01 javac hello.java
実行結果が分かりにくいのですが、実行しても何も表示されなかったら成功です。
失敗するとコンパイルエラーが表示されます。
javaコマンドでコンパイルでできたファイルを実行
コンパイルが成功すると、拡張子が『.class』のファイルが生成されてるので、javaコマンドで実行します。
javacコマンドと違い、『.class』の拡張子を除いた部分を指定します。
※ java hello.classとはならないので気をつけましょう。
java hello
成功すると、Hello と表示されます。
hello.javaファイルの、System.out.println("Hello"); の引数の値を "Helloween"に変えたらHelloween と表示されます。
class hello{ public static void main(String[] args){ System.out.println("Helloween"); } }
hello.javaファイルの変更を反映させるには、再度javacコマンドでコンパイルしてからjavaコマンドを実行する必要があります。
詳しい内容は書籍で。
とりあえず、Javaでプログラムを実行することができたので、この続きは『Java言語セミナーを受講して 2章』に続きますので、興味ある方は読んでみてください。
今回はこのへんで。