Java言語でWebアプリ開発のベースとなるものを作ろう!
と思い
どうせ作るなら・・・
新しいものに挑戦しよう!
と思い
やってみることにしました。
開発環境はWindows7 Professionalです。
早速、上記リンクから最新版(この時は2.0.3)をダウンロードしました。
で、上記リンクの「Lean」をクリックし始めてみました。
Javaは JDK6以上のバージョンで・・・・
あ、このPCにはJDK7が入っているから大丈夫・・・っと。
で、コマンドプロンプトでplayを解凍したディレクトリに遷移して・・・と。
「play.bat」を起動・・・っと。
ん?あれ?あああああ
そうだ、そうだ、最近はEclipseとか便利なもので開発することに慣れてしまって、Windows上で環境変数をいじることをすっかり忘れてました。
※例です。開発環境はWindows7 Professionalです。
- ウィンドウズボタンを押して・・・
- 「コンピュータ」を右クリックして・・・・
- 「コントロールパネル¥システムとセキュリティ¥システム」の画面が表示されるので
左側のメニューから「システムの詳細設定」をクリック(管理者権限が必要です。) - 「システムのプロパティ」が表示されて・・・「詳細設定」タブをクリック
- 「OK」「キャンセル」の上にある「環境変数」をクリック
- システム環境変数の枠の方の「新規(W)」をクリック
- 変数名に「JAVA_HOME」、変数値に「C:\dev\java\7」(ここは実際にJDKをインストールしているディレクトリを指定)とか入力し「OK」押す
- 同様に「新規(W)」を押して、変数名「CLASSPATH」、変数値に「%JAVAHOME%\jre\lib;%JAVAHOME%\lib;%JAVA_HOME%\lib\tools.jar」(多分このままでOK)とか入力し「OK」押す
- 最後にシステム環境変数から「Path」を探してクリックで選択して「編集」ボタンをクリック
- 「編集」を押して、変数名・変数値は変更せずに、変数値の最後尾に「;%JAVA_HOME%\bin\;」を追加し「OK」を押す
- これで開いてきたものを全部閉じて・・・Playの方へ戻ります・・・
うむ、これでヨシ。
で、「play.bat」起動・・・・
※今回のplayを格納したディレクトリは「C:\dev\play」となっています。
c:\dev\play>play
Getting net.java.dev.jna jna 3.2.3 …
:: retrieving :: org.scala-sbt#boot-app
confs: [default]
1 artifacts copied, 0 already retrieved (838kB/257ms)
Getting Scala 2.9.1 (for console)…
:: retrieving :: org.scala-sbt#boot-scala
confs: [default]
4 artifacts copied, 0 already retrieved (19939kB/4401ms)
Getting play console_2.9.1 2.0.3 …
:: retrieving :: org.scala-sbt#boot-app
confs: [default]
5 artifacts copied, 0 already retrieved (3667kB/362ms)
_ _
_ __ | | __ _ _ _| |
| ‘_ \| |/ _’ | || |_|
| __/|_|\____|\__ (_)
|_| |__/
play! 2.0.3, http://www.playframework.org
This is not a play application!
Use `play new` to create a new Play application in the current directory,
or go to an existing application and launch the development console using `play`
.
You can also browse the complete documentation at http://www.playframework.org.
※バックスラッシュの関係で play! のアスキーアートが崩れてます・・・
これでOKですね。
で、これ自体はツールでしかないので環境変数にPlayのパスを追加します。
・・・ちょっとここは個人の趣味なのでコマンドプロンプト上で追加しますが、前述のJavaの環境変数同様にやってもOKです。
c:\dev\play>set path=%path%;c:\dev\play;
これをそのまま ファイルに記述し「playstart.bat」とでも名称付けてデスクトップなどにおいておくとplayの開発が楽です。
↓こんな感じ。
cmd
で、パスを通したら実際に開発するディレクトリを作ります。
※ここでは c:\dev\workspace が存在するものとしてその中に「playsamp」というディレクトリを作ります。
c:\dev>cd workspace
c:\dev\workspace>mkdir playsamp
c:\dev\workspace>cd playsamp
そしたら、作ってみますよ・・・・
_ _
_ __ | | __ _ _ _| |
| ‘_ \| |/ _’ | || |_|
| __/|_|\____|\__ (_)
|_| |__/play! 2.0.3, http://www.playframework.orgThe new application will be created in C:\dev\workspace\playsamp\app
What is the application name? ←アプリケーション名?ログとかで使用されるらしい。「app」でいいよっ!
> app ←デフォルトで「app」と入っているのでそのままエンター
Which template do you want to use for this new application?
1 – Create a simple Scala application
2 – Create a simple Java application
3 – Create an empty project
> 2 ←今回Javaアプリケーション作りたいので「2」入力しエンター
OK, application app is created.
Have fun!
あ、終わった。
これで app ディレクトリが作られて中にアプリケーションのひな形が作られてました。
※tree /F コマンドで見たところ。
└─app
│ .gitignore
│ README
│
├─app
│ ├─controllers
│ │ Application.java
│ │
│ └─views
│ index.scala.html
│ main.scala.html
│
├─conf
│ application.conf
│ routes
│
├─project
│ build.properties
│ Build.scala
│ plugins.sbt
│
└─public
├─images
│ favicon.png
│
├─javascripts
│ jquery-1.7.1.min.js
│
└─stylesheets
main.css
これでも動かせるようです。
app に移動し「play」コマンドで起動・・・するのかな・・・
[info] Loading project definition from C:\dev\workspace\playsamp\app\project
[info] Set current project to app (in build file:/C:/dev/workspace/playsamp/app/
)
_ _
_ __ | | __ _ _ _| |
| ‘_ \| |/ _’ | || |_|
| __/|_|\____|\__ (_)
|_| |__/play! 2.0.3, http://www.playframework.org> Type “help play” or “license” for more information.
> Type “exit” or use Ctrl+D to leave this console.
[app] $
おお、ここで「run」と打つと起動・・・・する と思う。
[app] $ run— (Running the application from SBT, auto-reloading is enabled) —
[info] play – Listening for HTTP on port 9000…
(Server started, use Ctrl+D to stop and go back to the console…)
これって「http://localhost:9000」で見られますよってことだよね。
で、見てみたら・・・・
ん???
サーバーエラー・・・・
コンソール上はこんなかんじに
\app\target\scala-2.9.1\classes…
[info] play – Application started (Dev)
[error] play – Cannot invoke the action, eventually got an error: Thrown(akka.pa
ttern.AskTimeoutException: Timed out)
このエラーはAkkaスレッドシステムが最適化されていないから出るとか・・・なんとか・・・・
こちらの記事を参考にしてください。
http://modalsoul.github.com/Programing/2012/07/26/Optimizing-Play2-for-Database-Driven-Apps/
そういえば、起動中にWindowsのファイヤーウォールがどーのこーので許可しますか?的なのが出てたな・・・それが原因かも。
で、気を取り直して、もう一度「http://localhost:9000」へアクセス!
キタ!
で、これをアレコレしようというわけなんだけど、やっぱりここからはエディタとしてEclipseに頼ってしまう・・・
この続きは後日、Eclipseにプロジェクトとしてインポートするところからにします。