読者です 読者をやめる 読者になる 読者になる

Java言語セミナーを受講して 1章

いざ、調布

Javaは独学で少し勉強してましたが、しっかり理解できていなかったので、今回、有限会社ナレッジデザインの山本道子さんが調布で行っていたJava言語セミナーに行ってきました。

主催

アドバンスドソフトウェア株式会社

f:id:ts0818:20160130164949p:plain

感想としては、非常に分かりやすく説明してくれて初心者の自分としてはありがたかったのですが、内容がボリューミーなのでもっと時間が欲しいと感じました。

(社内研修もやってるといっていたので新入社員の方が羨ましいです。) 

早速講習の内容をメモしておくことにしました。

Java

1995年にJavaテクノロジーというものが発表され、急速に広まる。

の3つを総称してJavaというようです。

1996年1月、Javaの開発環境であるJDK1.0がリリースされます。

その後、様々な機能が改良・追加され、現在に至ってるそうです。

Javaは、米国のサン・マイクロシステムズSun Microsystems, inc.) が開発したソフトで、現在は企業買収で米国のオラクル(Oracle America, inc.) から提供されてます。

Javaの特徴

  1. Write Once, Run Anywhere(一度書けばどこでも動く)
  2. JVMJava Virtual Machine)による処理
  3. 開発環境と実行環境が無償公開
  4. オブジェクト指向
  5. 充実したクラスライブラリ

1. Write Once, Run Anywhere一度書けばどこでも動く

Javaはプログラムとそれを動かすOSとの間に依存関係がなく、OSの違いを気にせず開発できるようです。同じプログラムをWindowsLinuxMacの全てで動かせるようです。C言語などは、Windows用、Linux用、Mac用とOSごとにプログラムが必要なようです。

2. JVMJava Virtual Machineによる処理

JavaのプログラムはOS上で直接動くのではなく、JVMJava仮想マシン)と呼ばれる実行環境上で動くようです。

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の開発)

f:id:ts0818:20160130182047p:plain

 

Java SEでできること

クライアント/サーバーシステムやスタンドアローンのアプリケーションを作成する場合はJava SEのみでも開発可能のようです。

クライアント/サーバーシステムとは、分散アプリケーションの一形態です。
システム全体を、サービスの要求側の『クライアント』とサービスの提供側の『サーバ』とに分け、両者が協調して全体のアプリケーションサービスを実現します。
通常、クライアント/サーバシステムは、2層分散処理システムと呼ばれ、多くの場合クライアント/サーバ間の通信プロトコルTCP/IPが利用されますが、Java SEはTCP/IPによる通信機能をクラスライブラリとして持っているようです。

スタンドアローンstand alone スタンドアロン

スタンドアローンとは、機器やソフトウェアシステムなどを、他と接続せずに単独で使用すること。

コンピュータや情報機器などについて用いる場合は、通信機能を介して他の機器や通信ネットワークと接続せずに、孤立した状態で使用することを指すことが多い。

ソフトウェアについて用いる場合は、他のソフトウェアの機能に依存せず、単体で実行・利用可能であるという意味であることが多い。

  2層分散システムについての説明は下記サイトへ

初級シスアド講座 クライアント・サーバー型LAN

 

Java SEの構造

Java SEには様々なテクノロジーが集結してますが、大きくまとめると3つに分類できるようです。

http://www.oracle.com/technetwork/java/javase/tech/index.htmlより引用

f:id:ts0818:20160130222649j:plain

  1. Java SE API
  2. JREJava SE Runtime Enviroment)
  3. JDKJava SE Development Kit)

1. Java SE API 

Javaが提供するクラスライブラリ。アプリケーションでよく使われるような機能を実装したクラスが用意されてるようです。

2. JREJava SE Runtime Enviroment

Javaプログラムの実行環境。

Java仮想マシンJVMJava Virtual Machine)と呼ばれるソフトウェアを中心に、関連するプログラムファイルや設定ファイルなどで構成されてるようです。

Javaで開発されたソフトウェアは特定のコンピュータの機種やOSに依存しない独自形式のプログラムとして配布され、これを直接コンピュータ上で起動して実行することはできない。

JRE(に含まれるJVM)は独自形式のプログラムをそのコンピュータで実行可能な形式に自動的に変換し、実行する

3. JDKJava SE Development Kit

javaプログラムの開発環境。.javaファイル(人間が作成したプログラム、つまりソースコード)を機械(JVM)が読み取れるように.classファイルに変換するjavac( Javaコンパイラで、ソースコードJavaバイトコードに変換する。)も含まれます。

javacコマンドで、.javaファイルを.classファイルに変換 = コンパイル

 

Javaの開発環境を構築

Javaで開発を始めるには、 JDKJava 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 のページを開きます。

f:id:ts0818:20160131011837p:plain

2016年1月31日において、バージョンが8u71と8u72とがありますが、今回は8u71を選択しました。

f:id:ts0818:20160131113020j:plain

『Accept License Agreement』を選択クリックします。

f:id:ts0818:20160131113021p:plain

自分はWindows7(64bit)を使っているので、『Windows x64』を選択しました。

f:id:ts0818:20160131113022p:plain

JDKインストーラー実行ファイル』がダウンロードされるので、ダブルクリックします。

f:id:ts0818:20160131113849j:plain

『はい(Y)』 ボタンを選択クリックします。

f:id:ts0818:20160131132913p:plain

『次(N)>』ボタンをクリック選択します。

f:id:ts0818:20160131202309j:plain

特に何も変更せず『次(N)>』 へボタンを選択クリックします。

f:id:ts0818:20160131202310j:plain

f:id:ts0818:20160131202311j:plain

ここも特に何も変更せず『次(N)>』 へボタンを選択クリックしました。

f:id:ts0818:20160131202312j:plain

f:id:ts0818:20160131202313j:plain

インストールが完了しました。『次のステップ(N)』『閉じる(C)』どちらかを選択します。

f:id:ts0818:20160131202314j:plain

 

Path 環境変数の設定

JDKを使用するには、Path 環境変数の設定を行います。

環境変数はどのフォルダで作業していても作成したプログラムのコンパイル、実行を簡単に行えるようにする仕組みのようです。

『スタート』>『コントロールパネル』 を選択します。

f:id:ts0818:20160131210717j:plain

『システムとセキュリティ』を選択します。

f:id:ts0818:20160131210714j:plain

『システム』を選択します。

f:id:ts0818:20160131210715j:plain

『システムの詳細設定』を選択します。

f:id:ts0818:20160131210716j:plain

環境変数(N)』を選択します。

f:id:ts0818:20160131210711j:plain

『システムの環境変数(S)』の『Path』を選択した状態で『編集(I)』を選択します。

f:id:ts0818:20160131210712j:plain

f:id:ts0818:20160131210713j:plain

変数値(V)の先頭に、JDKのインストール先である『C:¥Program Files¥Java¥jdk1.8.0_71¥bin;』を追加します。数字の部分はインストールしたJDKのバージョンによって変わるのでインストールしたバージョンに合わせます。

(※元からある変数値を消さないように気をつけましょう。コピーしてテキストエディターなどで編集すると良いかもしれません。)

C:¥Program Files¥Java¥jdk◯.◯.◯_◯◯¥bin;

追加したら『OK』をクリックします。 

 

環境変数が正しく設定できてるか確認します。

『スタート』>『すべてのプログラム』>『アクセサリ』>『コマンドプロンプト』と選択します。

バージョン確認コマンドを実行してバージョンが表示されればOKです。

javac -version
java -version

 

f:id:ts0818:20160131220652j:plain

 

Javaプログラムのコンパイルと実行

環境変数の設定ができたので、Javaプログラムを実行できるようになってます。

Javaプログラムを実行する手順は、

  1. プログラムを作成
  2. javacコマンドでコンパイル
  3. 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コマンドでコンパイル

JVMJava仮想マシン)がプログラムを実行できるように、人間が記述したjavaファイル(ここではhello.javaファイルのこと)をjavacコマンドでコンパイルし、拡張子が『.class』のファイルを作成します。

『.class』ファイルは、hello.javaファイルが格納されてるフォルダ(ここではjava01フォルダ)と同じところに作られます。

フォルダ構成とコンパイル 

f:id:ts0818:20160131233452p:plain

コマンドプロンプトで、cdコマンドでフォルダまで移動し、javacコマンドでhello.javaファイルをコンパイルします。

cd ¥sample¥java01
javac hello.java

実行結果が分かりにくいのですが、実行しても何も表示されなかったら成功です。

失敗するとコンパイルエラーが表示されます。 

javaコマンドでコンパイルでできたファイルを実行

コンパイルが成功すると、拡張子が『.class』のファイルが生成されてるので、javaコマンドで実行します。

javacコマンドと違い、『.class』の拡張子を除いた部分を指定します。

java hello.classとはならないので気をつけましょう。 

java hello

成功すると、Hello と表示されます。

f:id:ts0818:20160131234744j:plain

hello.javaファイルの、System.out.println("Hello"); の引数の値を "Helloween"に変えたらHelloween と表示されます。

class hello{
  public static void main(String[] args){
    System.out.println("Helloween");
  }
}

hello.javaファイルの変更を反映させるには、再度javacコマンドでコンパイルしてからjavaコマンドを実行する必要があります。

f:id:ts0818:20160201003938j:plain

詳しい内容は書籍で。

オラクル認定資格教科書 Javaプログラマ Bronze SE 7/8 単行本(ソフトカバー) – 2015/10/10

f:id:ts0818:20160202070628j:plain

 

とりあえず、Javaでプログラムを実行することができたので、この続きは『Java言語セミナーを受講して 2章』に続きますので、興味ある方は読んでみてください。

 

広告を非表示にする