感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

WindowsにPlay Frameworkをインストールして、Eclipseに取り込んで画面表示させるまでの手順

スポンサーリンク

Play Framework

Play Frameworkは2009年に登場した。
このフレームワークの驚くべき点は、Java EEを使わない、という点だ。
JSPサーブレットを作成し、Tomcatなどのサーブレットコンテナで実行するという「Javaプログラマの常識」を覆したのがPlay Frameworkである。

JSPサーブレットも使わず、サーブレットコンテナも使わない。
すべてをイチから作りなおしたのがPlay Frameworkだった。

Play FrameworkはRailsライクなフレームワークと言われ、以下の特徴を備えている。
MVCアーキテクチャを採用
・ユーティリティコマンドによる自動生成
・設定よりも規約を重視した設計

Strutsなどのフレームワークでは設定ファイルが膨大に膨れ上がり、管理がいちいち面倒だった。
Play Frameworkでは設定ファイルは必要最小限に抑え、規約に従ったファイル名、フォルダ構成にすることで、自動的に必要なファイルを読み込み実行するようになっている。

Play Frameworkのインストール方法

Play Frameworkは以下からダウンロードすることができる。
http://www.playframework-ja.org/
ダウンロードしたら、適当なフォルダに解凍する。
自分は「C:\framework\play-2.2.0」とした。

で、これをシステムの環境変数「Path」に追加する。
「(省略):\;C:\framework\play-2.2.0\」みたいな感じ。

Scala用のEclipseプラグインをインストールする

「ヘルプ」→「新規ソフトウェアのインストール」
で、URLを入力するところに

http://download.scala-ide.org/sdk/e38/scala210/stable/site

をコピペする。

これはEclipseのバージョンなど、環境によってコピペするURLが違うため、以下のサイトを参照して欲しい。
http://scala-ide.org/download/current.html
これをコピペするとScala IDEっぽいのが出てくるので、必要そうなものにチェックを入れて「次へ」とやっていけばいい。
インストールが終わったらEclipseを再起動する。

EclipseでPlay Framework開発を行う。

まず、コマンドラインでPlayアプリケーションを作成する。
コマンドプロンプトを立ち上げて以下のコマンドを実行。

play new myapp

結果はこんな感じ。

C:\framework\code>play new myapp
       _
 _ __ | | __ _ _  _
| '_ \| |/ _' | || |
|  __/|_|\____|\__ /
|_|            |__/

play 2.2.0 built with Scala 2.10.2 (running Java 1.7.0_45), http://www.playframe
work.com

The new application will be created in C:\framework\code\myapp

What is the application name? [myapp]
> myapp

Which template do you want to use for this new application?

  1             - Create a simple Scala application
  2             - Create a simple Java application

> 2
OK, application myapp is created.

Have fun!
C:\framework\code>

すると、こんなフォルダができる。

├─app
│  ├─controllers
│  └─views
├─conf
├─project
├─public
│  ├─images
│  ├─javascripts
│  └─stylesheets
└─test

で、次に「cd myapp」に移動して

play eclipse

というコマンドを実行する。
これでできるはずが、こんなエラーが。。。

[info] Compiling 4 Scala sources and 2 Java sources to C:\framework\code\myapp\t
arget\scala-2.10\classes...
java.io.IOException: Cannot run program "javac": CreateProcess error=2, ツ指ツ定さ
ツれたツフツァツ・  at java.lang.ProcessBuilder.start(Unknown Source)
        at sbt.SimpleProcessBuilder.run(ProcessImpl.scala:384)
        at sbt.AbstractProcessBuilder.run(ProcessImpl.scala:136)
        at sbt.AbstractProcessBuilder$$anonfun$runBuffered$1.apply(ProcessImpl.s
cala:167)

これは、JAVA_HOMEを設定して、システム環境変数のPathに%JAVA_HOME%\bin\を設定していないため発生する。
ちゃんとパスを通してからだと、こんな感じでうまくいった。

C:\Windows\System32>cd C:\framework\code\myapp

C:\framework\code\myapp>play eclipse
[info] Loading project definition from C:\framework\code\myapp\project
[info] Set current project to myapp (in build file:/C:/framework/code/myapp/)
[info] About to create Eclipse project files for your project(s).
[info] Compiling 4 Scala sources and 2 Java sources to C:\framework\code\myapp\t
arget\scala-2.10\classes...
[info] Successfully created Eclipse project files for project(s):
[info] myapp

さて、これをEclipseに取り込む。

Eclipseを開いて、「ファイル」→「インポート」→「一般」→「既存プロジェクトをワークスペースへ」
「ルートディレクトリの選択」の参照をクリックして、先ほど作ったmyappを選択する。
「C:\framework\code\myapp」みたいに。
指定した上で「完了」を押すと、Eclipse上にPlayプロジェクトが取り込まれる。

Eclipse上でPlay Frameworkを起動したりできるようにする

上の方のメニューにある「実行」→「外部ツール」→「外部ツールの構成」

「プログラム」を選択し、右クリック→「新規」をクリック
ロケーションは「ファイルシステムの参照」でplay.batを指定する。
「C:\framework\play-2.2.0\play.bat」みたいな感じ。

作業ディレクトリは「変数」で、「project_loc」を選択する。
「引数」のところは「run」と書いておく。

ここまで書いたら「適用」をクリック。
設定はこんな感じ。
f:id:sho322:20140104202925j:plain

で、Eclipseの右矢印と工具箱みたいなアイコンから「play run」を実行すると、Playフレームワークが動いた!!

ブラウザで、

http://localhost:9000/

にリクエストすると、念願の画面が・・・・!!!
f:id:sho322:20140104202942j:plain

ここまで2時間かかった・・・。
JAVA_HOMEのパスの指定のところでつまづいたから。。

この記事を読むことになった皆様は、同じ轍を踏まないように願っている。

参考にした本

唯一の日本語書籍。この本を参考にするしかない。
今回も大いに参考にした。
それにしても、掌田津耶乃さんは言語をまたいでいろんなフレームワークを素早く本にしてて、ほんと仕事が速いお方だと思う。