Java開発環境を作ろう-JDK切替え&プログラミング編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

以前の記事では
JDKをダウンロードしましたね。

ところが
最初からインストールされていた

openJDKとJDKが
共存するかたちになり...

openJDKが
アクティブな状態でした。

今回は
openJDKとJDKを切り替える方法

そして
Javaプログラムの作成と
コンパイル方法をご紹介します。

Javaの実行環境を切替えるには?

少しおさらいです。

yumコマンドで確認すると...

step1

JDKは
インストールされましたが...

javaコマンドで確認すると...

step2

アクティブJavaは
openJDKになっていますね。

では
JDKは使えないのでしょうか?

いえいえ、大丈夫です。

openJDKとJDKの
どちらをアクティブにするかは
切り替えることができます。

まあ、
openJDKでも
全然問題ないのですが...

切り替えを行うには...

alternatives

というコマンドを実行します。

これは
標準で使うコマンドを

どの環境で使用するか
設定できるコマンドです。

たとえば...

同じプログラムでも
旧バージョンと新バージョンを
インストールしている場合などは、

このコマンドを使って
新旧どちらのバージョンでも

好きなタイミングで切り替えて
使うことができるのです。

このコマンドを使うには
管理者権限が必要です。

suコマンドで
管理者に切り替えましょう。

と入力して、
パスワードを入力します。

管理者ログインできたら、
早速JDKを切り替えてみましょう

step3

javaで使用される
プログラムの一覧が表示されました。

2つのプログラム...

openJDKとJDKが
表示されています。

現在は1のopenJDKが
アクティブ(+マーク)になっています。

2を入力して
Oracle版のJDKに設定しましょう。

ここでもう一度
javaコマンドで確認します。

step4

Oracle版のJDKが
アクティブになりましたね。

openJDKに
また戻したい場合は、

alternativesコマンドで
選択しなおせば大丈夫です。

alternativesコマンドが
正しく発行できたら

普通のログインユーザーに
切り替えておきましょう。

Linuxという
ユーザーに切り替えるなら

…と入力します。

Javaプログラムを作ろう!

それでは
簡単なJavaプログラムを書いてみましょう。

プログラムを保存する
専用フォルダがあった方が便利ですので

まずは
専用フォルダを
ホームディレクトリに作成しましょう。

ホームディレクトリに

javastudy

...というフォルダが作成されました。

step5

(ログインユーザー名)の部分は
ログインしているユーザー名によって変わります。

環境に応じて設定してください。

それでは
Javaソースコードを書いてゆきましょう。

[アプリケーション]-[アクセサリ]-[gedit]

...でエディタを開きます。

step6

次に、
以下のJavaプログラムを書きます。

画面に

Hello World!!

...と表示されるものです。

これを
先ほど作ったフォルダに保存します。

ファイル名は

HelloWorld.java

…としてください。

「.java」

という拡張子が
Javaプログラムという意味になります。

そして、
プログラムのファイル名ですが、

Javaのファイル名は
プログラムのクラス名と
同じでなければいけないというルールがあります。

この場合は...

public class HelloWorld

...の部分ですね。

classに続く文字が
クラス名になります。

これで
プログラムの準備ができました。

それでは
プログラムを実行してみましょう。

Javaプログラムは
そのままでは実行できません。

コンパイルすることで
始めて実行することができます。

HelloWorld.javaを
コンパイルしてみましょう。

端末を開いて...

javac

...という
Javaコンパイル用プログラムを実行します。

上のコマンドで
先ほど作ったjavastudyフォルダに移動して、
javacコマンドを実行します。

これで
コンパイルが終了しました。

エラーがあれば
この時にエラー内容が表示されます。

javastudyフォルダを見ると...

HelloWorld.class

...というファイルが作成されていますね。

step9

これは...

クラスファイル

...といい、
Javaプログラムの
実行ファイルになります。

それでは、
クラスファイルを実行してみましょう。

プログラム通りに...

Hello World!!

という文字が表示されました。

step10

まとめ

Javaプログラムの
作成からコンパイル、
そして実行までご紹介しました。

ここでは
端末から実行していますが、

EclipseなどのIDEで
プログラミングされることが多いです。

ですが、
Javaがどういう手順で

プログラムをコンパイルして
実行しているのか?

...ということを理解するには

Javaコマンドを
ひとつずつ実行するのが良いですね。

たくさんの
プログラムを作って
Javaを習得していってください。

ここがあなたの第一歩です。

リスキルテクノロジー
松田

PS

Javaのプログラミング講座ならこちら

エンジニアのための「意外と知らないプログラムに使う記号の読み方」

From: リスキルテクノロジー 松田航
新宿本校にて、、、

OSの操作や
プログラムを組んでいると

さまざまな
記号を使うことが多いです。

今回は

さまざまな記号と
システムにおける記号の使われ方

についてご紹介しましょう。

この記号は何という名前?

プログラムを扱っていると
記号に接する機会は多くなります。

他の人に
システムの仕様を伝える時

あれ?

この記号って

何ていう名前なんだろう?

…と思ったことはないでしょうか。

例えば

「?」

このマークの
正式名称がわからないので

「はてなマーク」

という方も多いでしょうね。

「?」はまだ優しいですが

「~」

とか

「|」

とかは何と言うのでしょうか。

記号の読み方と使われ方

それでは、
記号の読み方と
システムでの使われ方について
簡単にご紹介しましょう。

1: ? マーク

「はてなマーク」ですね。

正しい読みは

「クエスチョンマーク」

...です。

この読みは
ご存知の方も多いでしょう。

システムでは
ワイルドカード(任意の文字)や
条件文で使われます。

Javaの条件文の例だと...

条件式 ? 条件式が真の時の処理 : 条件式が偽の時の処理

...のように使われます。

ただ、
多用すると読みにくくなるので
使わないほうがいいとも言われています。

私は割と使ってしまいますが。

2: ! マーク

通称「びっくりマーク」です。

正しい読みは

「エクスクラメーションマーク」

...です。

不均等記号として
多くの言語で使用されます。

値A != 値B

の例では、
値Aと値Bが一致しない
という意味になります。

3: ' マーク

こちらは

「シングルクォーテーション」

...です。

英語で使用する
アポストロフィとも似ていますが、
両者は別ものです。

'文字列'

...のように、
記号で文字括って
文字列を表すことが多いです。

4: " マーク

こちらは

「ダブルクォーテーション」

...です。

シングルクォーテーションと同じく
文字を括って
文字列を表します。

5: % マーク

「パーセント」です。

これはさすがにお分かりでしょうね。

一般的には
比率を表しますが、

javaなどでは…

乗余算(余り)

…の算出に使われます。

例えば...

値A % 値B

だと、

値A÷値Bの余りを求めます。

6: ` マーク

こちらは

「バッククウォート」

...です。

Linuxで使用される
シェルスクリプトでは

この記号で括った文字を
コマンドとして扱います。

7: * マーク

通称「コメマーク」です。

正しくは

「アスタリスク」

...と読みます。

全項目にマッチする
ワイルドカードとして使われており、

SQL文では
データを読み込む時に

テーブルに含まれる
全ての項目を表す文字として
使われています。

8: ~ マーク

通称「にょろマーク」です。

正しくは

「チルダ」

...と読みます。

Linuxでは
ホームディレクトリを意味します。

9: ^ マーク

チルダと似ていますが
こちらは...

「ハット」

...と言います。

Javaなど多くの言語の

XOR演算(排他的論理和)

...で使われています。

10: < マーク

「小なり」です。

値の比較で
使われる記号ですね。

11: > マーク

「大なり」です。

同じく値の比較で
使われる記号です。

大なりと小なり、
どっちがどっちか忘れる方も多いので
ご紹介しました。

12: / マーク

「スラッシュ」です。

WebではURLの
階層を表す記号として使われますね。

また、
多くのプログラムでも
除算(割り算)を意味する記号として
使われています。

13: \ または \ マーク

「バックスラッシュ」ですが、

環境によっては...

「円マーク」で表示されます。

Linuxなど
多くのシステム上では、
文字を明確に表すために...

「エスケープ文字記号」

として使用されます。

14: | マーク

「パイプライン」です。

Linuxでは
パイプ処理を行う時に使用します。

例えば、
フォルダ内のファイルを表示する

「lsコマンド」

と、

標準出力の内容を
ファイルに書き出すことができる

「teeコマンド」を
以下のように組み合わせます。

ls | tee list.txt

そうすると、
標準出力に表示されると同時に、
list.txtというファイルにも書き込まれます。

誰でも理解できる伝え方がポイント

実際に、他の人に
記号を説明するには

正式名称で伝えるよりも
分かりやすい言葉で伝える方がいいでしょう。

「パイプライン2つ」

と言うよりも...

「縦棒2本」

と言う方が伝わりやすいですものね。

記号も大切ですが、
大切なのは伝わりやすさです。

例えばプログラミングでは
記号を多く使うと読みにくくなりますので、

分かりやすい書き方で
誰でも理解できるということも大切ポイントです。

とはいえ、後輩に聞かれたときなど、
答えられるようにはしておきたいですね。

リスキルテクノロジー
松田

PS
本格派プログラミングのスクール

ハッカソン・アイデアソンとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

IT関連の
ニュースなどを見ていると...

「ハッカソン」

「アイデアソン」

という言葉を
頻繁に目にするようになりました。

特にエンジニアであれば、
週に一度はどこかで目に入ってくる
言葉ではないでしょうか?

ハッカソンとは?

ハッカソン(Hackathon)

とは...

ハック(Hack)

マラソン(Marathon)

...を組み合わせた造語です。

さまざまな
IT系の職業の方が集まり、

アイデアを出し合って
新しいシステムやアプリなどを作ります。

「ハック」

と言うと
システムに不正侵入する

「ハッカー(Hacker)」

「ハッキング(Hacking)」

...を
イメージする方も多いでしょう。

ハッカソンでは
エンジニアが集まって
何やらよからぬ計画を練っている...

などということはありません(笑)。

Hack

...という言葉は

「(物事を)切り刻む」

「うまく進める」

...といった意味もあります。

ハッカソンとは
新しい事業を創出したり、
サービス向上のための活動であったりと、

非常に前向きかつ
生産的なワーキングなのです。

ほとんどのハッカソンは
開催時にテーマが設けられます。

エンジニアたちが集まり
1日~1週間程度の短期間、
集中的に作業を行うため、

生産性と効率が良く
テーマに沿った作業を行えるのです。

アイデアソンとは?

アイデアソン(Ideathon)

とは...

アイデア(Idea)

マラソン(Marathon)

...を組み合わせた造語です。

こちらは主に
ハッカソン開催前の
事前準備として行われます。

ハッカソンに参加する
チームやメンバーが集まり、

ハッカソンで決められた
テーマに対するアイデアを出しあいます。

ハッカソンに参加するための
各メンバーのブレインストーミングや

アイデアを
ブラッシュアップしてゆき、

ハッカソンで作り上げるものの
方向性を定めてゆきます。

その他にも
メンバー間の交流を深めるという効果もあります。

ハッカソンが
1日から数日で行われるのに対し、

アイデアソンは
ハッカソンの開催前に
数時間程度で行われるケースが多いですね。

アイデアソンを行うことで
ハッカソンで良いものが生まれる可能性が高まり、

活気あふれる有意義な
ハッカソンにすることができるのです。

多くの企業や団体が注目しています

ハッカソンの有効性について、
多くの企業や団体が気付き始めています。

大企業などでは

「社内ハッカソン」

を開催して
新規アプリやサービスの
開発を行うケースも見られます。

また、
社内のエンジニアだけでなく
社外のエンジニアを招いて

自社の概念だけに
とらわれないようにして
ハッカソンを開催するケースもあります。

Facebookは
創業当初から
ハッカソンを大切にしており、

「いいね!」

「タイムライン」

といった機能は
Facebookで頻繁に行われる
ハッカソンから生まれています。

こういった事例は
新製品や新たな発想を生み出す

ハッカソンの有効性を
十分に認識していると言えるでしょう。

ぜひ参加してみてください

ハッカソンは
IT業界だけで行われるわけではありません。

近頃では
地域の町おこしのために
地方自治体が開催するハッカソンや、

起業家育成のための
ハッカソンなども行われています。

内容的にはITを活用して
新しい何かを創造するものが多いですが、

地域や団体が抱えている
課題の解決を行うためのアクションとしても
ハッカソンが活用されています。

ハッカソンというアクションは
IT業界だけにとどまらず
今後も社会に大きく広がってゆきます。

何かいいアイデアはない?

といきなり言われても
なかなかアイデアは生まれませんが、

それぞれの分野の人が集まれば
新しいアイデアも生まれやすいですし、
新しいものを作ることもできます。

ハッカソンという
新しいものづくりのアクションには
エンジニアが活躍できるフィールドが広がっています。

ハッカソンに参加できる機会があれば
ぜひ参加してみてください。

リスキルテクノロジー
松田

PS

アイデアを形にできるプログラミングスクール

サーチ(探索):アルゴリズムの基本4

From: リスキルテクノロジー 松田航
新宿本校にて、、、

世の中には
さまざまな情報が溢れています。

情報を効率よく管理して活用するために
コンピューターシステムが作られますが...

膨大なデータ量になるほど
特定のデータを探し出すのに時間がかかります。

今回はデータを探すアルゴリズムである、

「サーチ」

についてお話しします。

インターネットでも業務システムでも広く使われています

インターネットでは、
何か知りたいことがある時、

Yahoo!やGoogleなどの
検索サイトで情報を調べることは多いですよね。

検索サイトでキーワードを入力すれば、
キーワードに関連するサイトが
検索結果として表示されます。

業務系のシステムであれば、
顧客情報や売上情報、経理情報など、
さまざまなデータがデータベースで管理されています。

例えば、ある顧客の情報を見たい時には、
顧客の名前や電話番号をキーワードにして検索すれば
顧客の情報を知ることができます。

このように、
キーワードを指定して
特定の情報を探索することを...

「サーチ」

...と言い、ソートと共によく使われるアルゴリズムです。

サーチアルゴリズムには
さまざまな種類がありますが、

その中でも基本的なものをご紹介しましょう。

リニアサーチ(線形探索法)
~データをひとつずつチェックして探索~

リニアサーチは線形探索法とも言われる、
サーチアルゴリズムの中では
最も単純な探索アルゴリズムです。

一直線に並んだ箱の中を
順番に空けて中身をチェックしていくのに似ています。

リニアサーチのイメージを見てみましょう。

linear

3,2,5,4,1と並んだ
5つの値を持つ配列があり、
この配列から4という値を探し出します。

リニアサーチは
順番に値をチェックしてゆくアルゴリズムです。

探索値と1番目の値を比べ、
探索値と2番目の値を比べ、
探索値と3番目の値を比べ...

と、順番に比べていって、
値が一致したらサーチ終了となります。

もし、どの値とも一致しなければ、
探索結果は無しとなります。

インターネットで検索する時でも
でたらめなキーワードで検索すると...

「一致する情報はみつかりませんでした」

と表示されますが、あれと同じですね。

リニアサーチは1つずつ値を比較するので、
とても時間がかかってしまいます。

少量のデータ探索には使えますが、
膨大なデータ量になると時間がかかりすぎて
実用的ではありません。

そこで、リニアサーチよりも
探索速度の速いアルゴリズムが必要とされます。

バイナリサーチ(二分探索法)
~データを2つに分けて効率よく探索~

バイナリサーチは二分探索法とも言われる
探索速度の速いアルゴリズムです。

ただ、リニアサーチをするには、
ひとつだけ条件があります。

その条件とは、
探索する配列の値が
あらかじめソート(並べ替え)されていることです。

それでは、
リニアサーチのイメージを見てみましょう。

バイナリサーチよりもややこしいので、
イメージだけつかんでください。

binary

1,2,4,5,6,8,9と
値が昇順に並んだ配列があり、
この配列から4という値を探し出します。

バイナリサーチでは、
まず配列の中間にある値をチェックします。

配列の中間の値は5なので、
探索値は中間よりも右側の
小さいグループにあることがわかりますね。

次に、小さいグループの中から
中間にある値をチェックします。

中間の値は2なので、
探索値は小さいグループの中間よりも
右側にあることがわかります。

そして、小さいグループの中間より
右側の値をチェックします。

ここで探索値が見つかったので、
サーチ終了となります。

バイナリサーチでは
ソートされたデータの特徴を活かして、

中間点の値を比べ続けることにより
高速に探索することができます。

リニアサーチだと
全ての値をチェックするか、
探索値が見つかるまでサーチを続けますが...

リニアサーチの場合は
必要ないチェックを行わずに探索できるのです。

ただ、リニアサーチを行う前には
必ずソートしなければいけないので、
ソートのための処理時間がかかるのが難点ですね。

サーチは常に使われる重要なアルゴリズム

このほかにも
さまざまな種類のサーチがありますが、
必要に応じて覚えていってください。

実際の現場では、
どのアルゴリズムを使うなどというのは、
あまり考えません。

データベースの性能に頼ってしまった方が、
いいからです。

しかし、考え方という意味で、
いろいろな場面で役立つのがアルゴリズムというやつです。

さまざまなアルゴリズムを習得して、
他のプログラムに利用できるような
応用力を目指すべきでしょう。

リスキルテクノロジー
松田

PS

アルゴリズムの範囲は広がっています。

ロボット掃除機の物体認識アルゴリズムや
テレビのCM音量を自動的に抑えるアルゴリズムなど、

ITの活用シーンが増えるにつれて
そのバリエーションは幅広くなっています。

あなたがエンジニアとして
最新のアルゴリズムを使うこともあるでしょう。

その日のために基本をしっかりとおさえて、
準備を整えておきましょう。

アルゴリズムも含めて学べるプログラミング講座

ユーザーエージェントとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

「エージェント(代理)」

というと、
プロスポーツにおける
代理人を想像してしまいますが、

Webの世界でも
エージェントが使われています。

今回は
Web技術における

「ユーザーエージェント」

...についてご紹介します。

ユーザーエージェントって何ですか?

Webサーバーは
ブラウザからの要求に対して

処理した結果を
Webページとして表示します。

このやりとりの際、
あなたが使っている
ブラウザの種類やバージョンを

Webサーバーが
把握しているということを
ご存知でしょうか?

実は各ブラウザには…

「ユーザーエージェント」

と呼ばれる固有の設定があり、
HTTPでWebに接続する際の情報に
ユーザーエージェントが含まれているのです。

このユーザーエージェントでは
あなたが...

・どのブラウザを使っているか?
・ブラウザのバージョンはいくつか?
・PCのOSは何か?

...といった情報が含まれておいあす。

Webサーバーでは
送られた情報をもとにして、
ブラウザに最適な方法でページを表示します。

たとえば...

スマホから
Webページにアクセスすると

自動的に
スマホ用サイトに移動することがありますが、

これはユーザーエージェントを判定して、
スマホからのアクセスの場合には
スマホ用サイトに遷移するようにしているためです。

ユーザーエージェントの例

各ブラウザ別に
ユーザーエージェントの例を見てみましょう。

■Internet Explorer

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

■Google Chrome

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36

■Firefox

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Firefox 14.0 Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Mozilla/5.0 (X11; Linux i686; rv:40.0) Gecko/20100101 Firefox/40.0

■Android Mobile Safari

Mozilla/5.0 (Linux; U; Android 3.2; ja-jp; A01SH Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1
zilla/5.0 (Linux; U; Android 4.0.3; ja-jp; URBANO PROGRESSO Build/010.0.3000) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (Linux; Android 4.2.2; ja-jp; SC-04E Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19

これらのは
ほんの一例ですが、

ブラウザの種類や
バージョンにより違いがあります。

また、
使用している端末のOSや
32bitマシンか64ビットマシンかによっても
ユーザーエージェントは変わります。

このように
ユーザーエージェントは

使用している環境によって
細かく分けられており、

この情報をもとに
Webサーバーのアクセス解析が行われます。

例えばWebサイトが...

・どのブラウザでよく閲覧されるか?
・どのOSからアクセスされているのか?
・PC、スマホのどちらからのアクセスが多いか?

...などといった
統計を取る事ができるのです。

ユーザーエージェントの偽装って?

ユーザーエージェントは
使っているWebブラウザから
Webサーバーに向けて、

「こういう端末でアクセスしていますよ」

といった、
いわば自己紹介のようなものです。

この自己紹介を
エージェント(代理人)が
行ってくれているといったイメージですね。

しかし、
このユーザーエージェントですが、

偽の情報を
設定することもできてしまいます。

偽のユーザーエージェントで
Webサーバーにアクセスすることを...

「ユーザーエージェントの偽装」

と言い、
偽装されてしまうと
Webサーバーは正しいアクセス解析ができなかったり、

本来公開したくない環境に対して
Webページを見せたりしてしまいます。

例えば
スマホ専用のサイトを
PCから閲覧するような場合ですね。

サイト管理者は
スマホだけをターゲットにして
Webサーバーを公開しているにもかかわらず、

「スマホからアクセスしています」

...とユーザーエージェントを偽装した
PCから閲覧されてしまうと迷惑ですよね。

運営側にとっては
偽装されるとデメリットが大きいので、
偽装対策の技術も進んでいます。

ユーザーエージェントを偽装すると
サービス提供側から罰則を受けるケースもありますので、
決して行ってはいけません。

バージョンアップ情報に注意しよう

ユーザーエージェントは
ブラウザのバージョンにより変わりますが、

場合によっては
大きく変わるケースもあります。

例えば、
あるWebサイトで
特定のブラウザからのアクセスを禁止している場合、

ユーザーエージェントから
ブラウザを判定しますが...

新しいバージョンの
ユーザーエージェントに対応しきれず
ブラウザを判定できない場合もあります。

そのため、
Webアプリの開発エンジニアは、

ブラウザのバージョンアップ情報などを
把握しておくことが必要です。

ソフトウェアエンジニアであれ
インフラエンジニアであれ、

使用している
アプリケーションには
バージョンアップはつきものです。

バージョンアップしたら
動作しなくなったということがないように、

バージョンアップ情報などは
しっかりと把握するようにしましょう。

リスキルテクノロジー
松田

PS

Webアプリケーションを開発するプログラミングの講座

Java開発環境を作ろう-JDKインストール編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

以前のブログで
Javaの基礎知識をご紹介しました。

CentOS7に
Javaがインストールされているかを
確認していたところ...

openJDK

...が既にインストールされていましたね。

openJDKとは
いったい何なのでしょうか。

openJDKって何ですか?

openJDKとはJavaSEの

「リファレンス実装」

...という位置づけです。

では
リファレンス実装とは
何でしょうかという話ですが...

プログラムを学ぶ時に
実際に動いているソースコードがあると

学びやすさは
確実にアップしますよね。

OpenJDKは
Javaの言語仕様を理解するために
オープンソース化されたものです。

実際には
openJDKとJDKは
ほとんど同じコードで書かれています。

細かいところでは
書き方の違いがあるようですが

機能的に
openJDKとJDKは同じもので

JDKの提供元である
Oracleも

openJDKは
JDKのリファレンス実装であると
公式に認めています。

つまり、
JDKがなくてもopenJDKがあれば
Java言語は学べるということです。

Oracle版のJDKをインストールするには?

それでも...

正規のJDKを使いたい!

...という方も
いらっしゃるでしょうから
JDKのインストール方法をご紹介します。

まずは
Oracleのホームページから
最新のJDKをダウンロードします。

Oracle
[URL]http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
step1

Java SE Development Kit 8u45

...が最新ですね。

Linux x86

または

Linux x64

のRPM版をダウンロードします。

x86とは32bit版のこと、
x64とは64bit版のことですので、
お使いのPCにあわせてダウンロードしてください。

ダウンロードする時には...

Accept License Agreement
(ライセンスに同意します)

...をチェックしないと
ダウンロードすることができません。

ダウンロードしたファイルは

ホーム-ダウンロード

に保存されています。
※保存方法にもよります

step2

さて、
今回はいつものように
コンソールからのインストールではなく

ウィンドウからの
インストールをしてみましょう。

このファイルを
右クリックして...

step3

ソフトウェアのインストールで開く(O)

を選択すれば
インストールが開始されます。

step4

途中で
パスワードを求められますので

入力して
インストールを続けます。

step5

インストール中の
メッセージが消えれば
インストールの完了です。

では、
インストールされているかを
確認してみましょう。

step6

openJDKに加えて
JDKがインストールされました。

openJDKとJDKのどちらが有効なの?

さて、
インストールはできましたが

今のところ
同じJavaでも...

openJDKとJDK

この両方が
共存していることになります。

Javaを実行するときは
どちらが使われるのでしょうか。

Javaコマンドで
アクティブなJavaを調べてみましょう。

CentOSが認識している
Javaのバージョンを確認します。

java -version

step7

どうやら
openJDKが認識されているようです。

Oracle版のJDKを使うには
どうしたらいいのでしょうか?

次回、
その方法についてご紹介しましょう。

リスキルテクノロジー
松田

PS

Oracle版のJDKでなく
openJDKでもJavaはきちんと動きます。

プログラミング講座ならこちらから

プログラミングの勉強をスタートしたとき楽になる考え方

From: 松田航
新宿サザンテラスのスタバにて

何かをはじめるととても大変です。ほとんど素人ですから何をやってもうまくいきません。いたるところでつまずきます。そして、だんだんいやになっていきます。

「何時間使ってもデバッグできない・・・。センスがないのか・・・」
「いくら考えてもオブジェクト指向で書けない。なんでだ!」
「うわぁ、またssh接続できなくなったよ。馬鹿か俺は」

その分野を勉強し始めたときは、どんなものであれ苦しくなるものです。そんなときはこう考えるのをおすすめします。

だんだん楽になる

今が大変だから、もっときつくなるんだと人間は思い込みます。この職業は向いていないんだ。違う分野に移動しようか。

今がこんなに大変なんだから、今後はもっと大変になるんだろうな、とか。

特に日本人はこの傾向が強いものです。楽して成果を上げた人よりも、一生懸命練習して成果を上げた人を褒め讃えるのが日本人の特色です。いわゆる成功者も嫌われたくはないため、「いや、大変だったのははじめだけだよ!」とは言わずに、「今も努力の連続ですよ」と言います。

しかし、実際には動き出すところが一番大変で、徐々に徐々に楽になっていきます。スーパエンジニアよりも、今日初めて学んだ人の方が大変で、偉大な仕事をしているのです。

物理の基本法則

大玉ころがしは、押すときが一番大変です。しかし、どんな重い球でも、転がり始めると、すぐにコロコロところがっていきます。「慣性の法則」が働くからですね。

絶対不変の慣性の法則によると、動いているものは動き続けようとします。反対に止まっているものは止まり続けようとします。

だからはじめは大変なのは仕方がないことで、少しでも動き出せば、後から加速させるのは割と簡単なのです。

学習曲線と呼ばれる曲線をご存知でしょうか? 学習時間と効果のグラフです。効果の伸び率がはじめは非常に悪い。しかし、それを残り超えると角度は急勾配になって生きて、一気に成長することができるようになります。

ただ、頑張ればいいのです。

まずは小さいところからはじめてみる

はじめが大変なのですから、いきなりすべて理想通りにやる必要はありません。これをやるから、誰しも挫折をします。

例えば、200ページある洋書に手を出してみたとしましょう。休暇中の10日間で全部読み切ると決意したとします。大抵の場合、「よし、1日20ページだな。今日から頑張ろう」と考え、初日もしくは翌日に挫折します。

そうではなく、「今日は初日だから1日10ページにしよう。その代わり丁寧に読もう」とすると、結果目標をクリアすることが多くなります。

最大限の結果をまずは望まず、まずは小さいことからはじめてみる方がいいのです。

・オライリーの新書を買ったら、まずは目次だけでも読んでみる
・英語の勉強を決意したら、洋楽を聴くようにする
・技術ブログをはじめようと思ったら、まずはブログだけ開設してみる

などですね。まずは抵抗のない、小さいことからはじめましょう。それだけで目標への到達率が大きく変わってきます。

もしあなたが今、やりたいと思っていることがあるのなら、今日まず何かしらの行動を起こしましょう。それはとても小さいことで構いません。

あなたは何からスタートしますか?

松田

PS

はじめは苦労が多く、疲れてしまい逃避しがちなので、強制的にプログラミングを勉強しなければならない状態にするのがいいです。

一気にレベルが上がるプログラミング講座はこちら

Java開発環境を作ろう-基礎知識編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

エンジニアになるために
習得しておきたい言語のひとつに...

Java

…が挙げられます。

以前のブログで
CentOSをインストールしましたが…

そこに
Javaの開発環境を作りたいと思います。

まずは
Javaに関する基礎知識からご紹介しましょう。

Javaって何ですか?

Javaは1990年代に
Sun Microsystems社によって
開発されたプログラミング言語です。

Web上で話題となっている
プログラム言語をランキングしている…

TIOBE Programming Community Index

において
Javaは常に上位に位置しており、

就転職市場でも
習得していれば有利な言語です。

TIOBE Programming Community Index
[URL]http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

TIOBE

Java人気の理由のひとつに…

プラットフォーム(環境)に依存しない

...という点が挙げられます。

他のプログラム言語は

特定の機種やOS上でしか動作しない!

...というものが多いのですが、

Javaで作ったプログラムは
どのような環境でも動作するのです。

その理由は...

Javaバーチャルマシン(JVM)

にあります。

JVMをすごく簡単に言うと、
どんな機種やOSに対してでも

Java言語を翻訳して
プログラムを実行できるようにするものです。

言語的にも
技術者人口の多かった
C言語やC++に似ている構造ですので、

技術者にとっては
取り組みやすく、

Javaが市民権を得るまで
多くの時間がかからなかったと言えます。

JDKとJREって何ですか?

Javaについて
少しでも調べたことがある方は

JDK
JRE

という言葉を
目にしたことがあるでしょう。

Javaだけではないですが、
プログラム言語では

このような、
略語が多く使われていますので、
混乱する方もいらっしゃるようです。

この2つの言葉の違いを
簡単にご説明しましょう。

JDKとは

Java Development Kit

の略で...

Javaを使った
アプリケーション開発に必要なものです。

JDKには
開発において必要となる...

・コンパイラ
(プログラムを実行形式にする機能)

・デバッガ
(バグ発見・修正を支援する機能)

・クラスライブラリ
(開発を効率化するライブラリ)

・ドキュメント生成
(ソースからドキュメントを自動的に作る機能)

...などが含まれたものです。

一方、JREとは

Java Runtime Environment

の略で...

Javaプログラムを実行するのに
必要なものです。

実行に必要なものですので、
Javaを使った開発はできません。

簡単に言えば...

・JDKはJavaアプリケーションを作るのに必要
・JREはJavaアプリケーションを実行するのに必要

...ということです。

ちなみに
JDKはJavaを実行しますので、
JREも含まれています。

じゃあJavaME、JavaSE、JavaEEって何ですか?

また略語だらけですね。

Javaは
ターゲットとなる環境により
製品を分けて提供されています。

JavaMEは...

Java Micro Edition

の略で...

家電製品などに組み込まれる
小型端末向けのJavaのことです。

JavaSEは...

Java Standard Edition

の略で...
一般的なPC向けのJavaのことです。

JavaEEは...

Java Enterprise Edition

の略で...
サーバーなどで使用される
企業向けのエディションになります。

ちなみに、
少し前までは
違う呼び名で呼ばれていました。

JavaME = J2ME
JavaSE = J2SE
JavaEE = J2EE

インターネットで検索すると
これらの単語が出てきますので、
混乱しないように注意してくださいね。

openJDKって何ですか?

それでは
いよいよ開発環境作りに入りますが...

まずは
JDKがインストールされていないか
確認してみましょう。

コンソールを開いて
以下のコマンドを入力します。

step1

...既にJDKが入っていますね。

ですが、

openJDK

...となっています。

openJDK?

また新たな言葉の登場です(笑)。

一般的なJDKとは
違うものなのでしょうか?

次回、
openJDKについてご紹介します。

リスキルテクノロジー
松田

PS

Javaを習得しておくと
エンジニアとして対応できる
開発のジャンルが飛躍的に広がります。

エンジニアを目指すなら
ぜひ習得しておきたい言語です。

Javaプログラミング講座ならこちら

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する