へっぽこ技術ブログです

Javaの開発環境構築手順 その1

この記事は以下のAdvent Calendarに向けた記事です。

adventar.org

 

昨日の記事は ichimura1231 さんの「electronを使ってデスクトップにキャラクターを走らせてみた2」でした。electron、面白そうですね。ちょっとやってみようかな。

 

さて本日はタイトル通り「Javaの開発環境構築手順」について記します。

ぶっちゃけ開発環境の作り方なんて巷のブログに山ほどある(そして僕も参考にさせていただいている)ので新規性なんて何もないのですが、1年生の授業中(≠プログラミングの授業)に『Javaって開発環境を作るのが大変(だから手をつけてない)なんだよなー!』なんて声が漏れ聞こえて来たので、『だったら1年生の持ってるPCで環境作りできるカンタンな手順を記事にしたらやらない理由が無くなるよね(は〜と)』という優しい心がこの記事を書く動機になったのでした。

 よって、この記事の賞味期限は短いです。いま環境構築して次の年末年始にアプリ開発に取り組みたい人だけをターゲットにしていますからね!

 

それでは1年生のみなさん、PC*1の用意はよろしいでしょうか?

 

1. JDKJava Development Kit)をインストール

 JDKJavaの開発環境(Development Kit)です。開発環境としてはざっくり、GUI等を使ったクライアントアプリ作成向けのJave SE(Standard Edition)、Webサービス開発向けのJava EE(Enterprise Edition)、組込みシステムなど向けのJava ME(Micro Edition)など様々なエディションがありますが、ここではJava SE のJDKをダウンロードしてインストールしましょう。

 

 Java SEのJDKは以下のページからダウンロードできます。

Java SE - Downloads | Oracle Technology Network | Oracle

 

 上記のページからは様々なバージョンのJDK等がダウンロードできますが、今ならバージョン8(Java SE 8なんとか)を使うのがまあいいんじゃないでしょうか。たぶん。

 というわけで以下のリンクボタン(Java SE 8u151 / 8u152 の JDK)をクリックしてください。

f:id:Hiesuke:20171107161207p:plain

 

続いてライセンスに同意するため、以下の箇所をクリックしてください。

f:id:Hiesuke:20171107171749p:plain

 

さらに、以下のリンクをクリックしてダウンロードしましょう。みなさんの使っているWindowsは64bit版なので「jdk-8なんとか-windows-X64.exe」になります。(X64ってところがポイント。ぺけ64ってね)

f:id:Hiesuke:20171107172116p:plain

 

ダウンロードしたファイルを実行しましょう。これでJDKのインストールは終了です。

 

2. IntelliJ IDEAをインストール

 続いて統合開発環境である IntelliJ IDEAをインストールします。統合開発環境は、開発作業を色々とサポートしてくれるツールです。今時の開発でなんらかの統合開発環境を用いないというのはアリエマセン(すっごく凄い人は別として)。

 以下のJetBrain社(IntelliJ IDEAの開発元)のサイトにアクセスします。

www.jetbrains.com

 

 IntelliJ IDEAのバージョンとして「Community」版を選んでダウンロードしましょう。

Community版は皆さんのような学生の個人開発者なら無料で使い続けることができます。お仕事で使うならぜひぜひ商用のUltimate版を購入してください。

 この記事を書いてる現在なら「idealC-2017.2.5.exe」というファイルがダウンロードできます。ダウンロード完了したら実行してインストールを行いましょう。

 

3. IntelliJ IDEAの設定

 続いてJavaプログラミング用にIntelliJ IDEAの設定をします。

 スタートメニューからIntelliJ IDEAを起動して以下の画面まで進めて「Create New Project(新規プロジェクト作成)」のボタンを押します。

f:id:Hiesuke:20171109101058p:plain

 

 続いて出てきたダイアログで「New...」のボタンを押します。

f:id:Hiesuke:20171109101411p:plain

 

 使用するJDKの場所を聞かれるので、「C:¥」の「Program Files」の「Java」の下(中)にある「jdk1.8.0_151」を選んで、「OK」ボタンを押します。

f:id:Hiesuke:20171109101954p:plain

 

 続いて「Next」ボタン、「Next」ボタン、「Finish」ボタンと押してください。

デフォルトのuntitledという名前でプロジェクト(Java プログラムや画像などで構成するアプリ作成の単位)が作成されます。もちろんプロジェクト名を自分で決めたい人はご随意に途中で指定してください。

 「Tip of the Day(本日のちょっとした有益なネタ)」が表示されたら「Close」しちゃいましょう。

 これで基本的な設定は完了です。次回の新規プロジェクト作成からはJDKの選択は不要です(設定済みのため)。

 

4. Javaプログラムを入力して動作確認

 続いてJavaプログラムの作成と実行ができるか試してみましょう。

  「Project」という枠の中にあるプロジェクト名の部分(デフォルトではuntitled)の下(中)にある「src」上で右クリックし、「New」→「Java Class」と選んでください。

f:id:Hiesuke:20171109103425p:plain

 

 出てきたダイアログに「Hello」と入力します。

f:id:Hiesuke:20171109104001p:plain

 

 作成された雛形を以下のように変更します。

f:id:Hiesuke:20171109104206p:plain



 

 ウインドウの「Run」メニューから「Run」→「Hello」と選びます。

 以下のように実行結果(今回のプログラムは『画面に Hello World! と表示する』アプリです)が表示されたら確認終了です。

f:id:Hiesuke:20171109105834p:plain

 

終わりに

 これで「Javaプログラミングを始めない理由」が一つ無くなったわけですね。よかったー!

 今回はプログラミングの楽しさに関する記事では無いので面白くなかったと思います。Hello World!という文字を表示させられてるだけじゃ面白いわけないよね!

 しかし、JavaFXなどのGUI部品を使ってグラフィカルなスタンドアローンアプリを作る上でもJavaは十分に活用できます。自分で考えたアプリを作るのでも良し、どこぞのサンプルプログラムを改造して何か面白いアプリにしてみるのでも良し、とにかくプログラミングを楽しんで欲しいですね。

 それでは Let's Java Programming!

 

 続く...

 

*1:Windows10機、DVDドライブ内蔵で世界最軽量、Panasonic SZシリーズ、20うん万円!

【プログラミング】今年もマスコットアプリ文化祭(アプリコンテスト)やるってよ!

今年もマスコットアプリ文化祭が開催されるようです。告知がありました。

 

mascot-apps-contest.azurewebsites.net

 

一昨年はUnityで作ったアプリ(というかチュートリアル)を、昨年はJavaFXで作ったアプリ(というかチュートリアル)を出品したので、今年は何で作ろうかと考え始めようと思います。

今年こそ参加賞狙いではなく、入賞しないまでもそれなりに遊べるアプリ等を作ろう!

...と毎年言ってる気がする。

 

 

【VR】Oculus 5万円セールだったのでついポチったよ

Oculus Rift CV1 & Touchで ¥50,000(税込)は安すぎるでしょう!

これで DK1, DK2, CV1と全て個人購入したわけだが。コレクションしたい訳ではないのだけど自宅でも「Robo Recallできるのかー」と思ったらつい出来心で...

それにしても会社用に購入した時と比べると半額ってのは凄い値下がりだなあ。まさかすぐに「CV2が出てCV1は販売終了」とかではありませんよねえ?

 

p.s.

まだ届いてないけど開発環境を学んでおこうと思って以下の本を買いました。読むよ。

 

【Android】AndroidアプリへのDropbox連携の実装

何年も前に作ったアプリなのでクラウドストレージ連携を実装してなく、使い勝手に不満が出てきた(実はとっくの昔から不満に思ってた)ので実装に取り掛かろうかと思った。

 

AndroidアプリなのでGoogle様に飲み込まれた方がいいよなと思ってGoogle Driveとの連携方法を探したのだけどお恥ずかしながらいまいち見つからないしわからない。Dropboxとの連携も同様にあまり資料がなかったのだけど、一応僕ごときでも読んでなんとなくわかりそうな実装手順を書いてくれているページがあったのでこれでトライしてみようと考えた。

www.webprofessional.jp

 

まあ、いきなり拙作アプリに組み込もうとして一旦頓挫したのだが(←バカ)、素直にサンプルプロジェクトがあったのでこちらに指示にしたがってDropbox開発者ページで取得したApp_Keyを埋め込んで試したけどアップロード時にエラーが出て動かない。

 

エラーメッセージを元に調べたら「どうやらこちらの症状では?」と推測できたので試しにMainActivityのOnCreateメソッドに以下の「パーミッション許可を利用者に問い合わせる処理」を組み込んだらうまくいった。

Android 6.0以降アプリがmkdirでフォルダを作れない場合の対処

上記処理の記事に一箇所記述ミスがあるのはご愛嬌。サンプルコード中の小さなミスを発見して自分で直すのも勉強になるから問題なし。

 

さて、本題の拙作アプリへのDropbox連携実装にかかろうかね。

 

おしまい

 

 

【覚書】jarファイルで画像などのリソースを扱う方法

JavaJavaFXなアプリを作っていて、開発環境上(IntelliJ IDEA)で動かしていた時は表示されていた画像(Imageオブジェクト)が、jarを生成して動かすと表示されないという事態に遭遇した。

ググったら割とポピュラーなことらしかった。以下、対処方法。

今までは

image = new Image(Paths.get("hogehoge.png").toUri().toString());

みたいに記述していたところを、

 

image = new Image(getClass().getResourceAsStream("hogehoge.png"));

と記述し直した。

画像ファイルはソースファイルと同じ場所に置く。

 

ちなみに、画像ファイルを IntelliJ IDEA の Projectエクスプローラで表示されている src ディレクトリの下に置いた状態で試して「動かない〜!」と悩んでいた。ソースファイルのあるところ、つまりパッケージのディレクトリ下に置かないとダメです。恥ずかしい〜。

 

【プログラミングクラブAdvent Calendar】AI学習事始めの事始め

 この記事は以下のAdvent Calendarの22日目となります。

www.adventar.org

 

人工知能をちょろっと勉強してみたいなと思って取り掛かってみたので、その覚書として記事にします。まだ途中だし、挫折しそうだし、ガッツリは無理だしなので参考にならないかと思うけど。

 

ステップ1:kazoo氏本を読んでみた

AI研究の現状を全体的に攫ってみたかったので「普通のお母さんが読んでもわかる」とう触れ込みのこちらをまずは読んでみた。

平易な書き方で誰でもなんとなくわかった気になれる文章なので、最後までスルスルっと読み終われると思う。基本的に汎用AI(囲碁とかチェスとかに特化してないAI。小説やアニメで反乱起こしそうなやつ)について書かれた本だけど、流行りの機械学習についてもしっかりと書いてある。

この本で「教師あり学習」「教師なし学習」「強化学習」の違いや「深層学習(ディープラーニング)」の定義についてなんとなくわかった。

 

ステップ2:ディープラーニングのプログラムが書かれている本を読んでみた

プログラムが示されていて解説もしっかりしてそうなので以下の本を買って読んでみた。

特に1章と2章はわかりやすくプログラムからなんとなーくニューラルネットの仕組みがわかったような気になるのでなんとか読み進められた。実際には使われているAI用フレームワークのことがわかってないので本当になんとなーくだけで理解はできていない。

1章と2章に対して、3章は歯ごたえがありありでまだ読み終わっていない。さらに言うと、読み終わっても理解できる気がしない。

この本を選んだ一番の理由は「技術書としてはかなり(物理的に)薄い本だから」なのだけど、その薄さにもかかわらず内容は濃いと思う。今の自分(未来も?)には内容が難しいのでかなり苦労しているところ。

残念ながらプログラムの動作確認はまだしていない。動作に足るCore i7, GTX1080くらいの専用Linux機を用意したい。

 

ステップ3:個人ブログを読ませていただいて勉強

前述の本が手強かったので、並行してWeb上の記事を色々と探してみた。その中でも、こちらの方のブログにある「高卒でもわかる機械学習」というシリーズ記事がとても読みやすくて一番参考になった。

頭の中に思い浮かべた時には

特にニューラルネットワークの仕組みと1層パーセプトロンと2層パーセプトロンの違い

 などは、前述の本でさらっと流している部分をしっかり納得しやすく書かれているのでとても勉強になった。こちらの記事がなければ本を読み進めることができなかったと思う。

 

ステップ4:Pythonフレームワーク使ってなんか動かしてみる(未達)

Pythonの文法本は買ってつらつら読んでいる。まだAIには触れていないけど、AIとは関係ないなんかアプリでも組んでみようと思ってる。文法や組み方に慣れてからAIの方向に着手する予定。

 

番外:よもやま

Web上にある勉強リソース(無料)の Courseraに機械学習が学べるコースがあって評判が良いようなので終わらせたい。

www.coursera.org

https://www.coursera.org/learn/machine-learning/home/welcome

 

あと、数学の復習用に「NHK高校講座」の数学Iを見てみたけどこれ純粋に面白い番組だなと思った。数学苦手な人に是非観てもらいたい。

NHK高校講座 | 数学I

 

と言うわけでまだ着手したばかりなのでもうちょっと踏ん張る。

先は長い。長すぎる。自分がある程度理解できた頃には HAL9000 が稼働を始めてそうだ。

 

おしまい

 

 

 

 

 

【プログラミングクラブAdvent Calendar】部員の皆さんへの宿題です

この記事は横浜医療情報専門学校プログラミングクラブ Advent Calendarの13日目となるモノです。

www.adventar.org

 

関係ないけど、 Calendarってどうしても Calender にスペリング間違えちゃいそうになりますよね。ならない?

 

えーと、この日が空いていてどうも誰も書いてくれなさそうだったので、急遽 埋めてみることにしました。ちょっと悲しいよ僕は。

というわけで、唐突ですが 部員の皆様に宿題です。

 

こちらの プロ生ちゃんAdvent Calendarというもの

qiita.com

 

の、ちょうど同じ13日目の記事として恥ずかしながらこんな記事を書きました。

hiesuke.hatenablog.com

 

JavaFXというGUIライブラリを使って Java言語で画像を動かすってだけのチュートリアル(練習課題)みたいな何かです。書かれている通りに設定してプログラムコードを入力すれば多分動きます。

 

では宿題です。

1. この記事の通りに試してみてください

 ヒント

 ・写経するだけ。わからなかったら聞いて。

2. カーソルキーの左右( ← と → )で、右と左に移動するように変更してください

 ヒント

 ・左右はX方向です。xの値が増えれば右、減れば左に移動(表示位置変化)するよ。

 ・右向きに反転した画像を用意する(画像編集ツールで加工すればOK)。

 ・keyPressed関数の中で eventを調べれば押されたキーがわかるよ。

 (試しに「 System.out.println( event.getCode().toString() ); 」を加えてみよう)

 

簡単すぎる!という人はさらに

3. 以下の画像を使って上下左右に移動するように変更してください。

  f:id:Hiesuke:20161214095959p:plain

  98.png

 ヒント

 ・1枚の画像(Image)から任意の場所だけを切り取って表示することができます。

  Googleで検索した結果

  (例:  gc.drawImage( image, 0, 0, 32, 32, x, y, 32, 32);  // 左上のキャラだけ)

 

おしまい

 

p.s.

ジョウホウカガクセンモンガッコウのアドベントカレンダーもアッタンダネ...

qiita.com