「Java」カテゴリーアーカイブ

MacでJDKをアンインストール

Macで古いJDK(Java SE)をアンインストールする方法。Oracleのページに解説がありました。このページ最後の Uninstalling the JDK というパラグラフに書いてありますが、単純にrmコマンドで当該ディレクトリ以下を削除すればよいようです。

$ cd /Library/Java/JavaVirtualMachines/

$ ls -al
total 0
drwxr-xr-x 5 root wheel 170 6 19 02:40 .
drwxr-xr-x 5 root wheel 170 9 19 2014 ..
drwxr-xr-x 3 root wheel 102 9 19 2014 jdk1.8.0_20.jdk
drwxr-xr-x 3 root wheel 102 3 11 23:07 jdk1.8.0_40.jdk
drwxr-xr-x 3 root wheel 102 6 19 02:40 jdk1.8.0_45.jdk

$ du -sh *
312M jdk1.8.0_20.jdk
327M jdk1.8.0_40.jdk
327M jdk1.8.0_45.jdk

$ sudo rm -rf jdk1.8.0_20.jdk

$ sudo rm -rf jdk1.8.0_40.jdk

上記は削除までの流れですが途中duコマンドで消費サイズ調べたら1個あたり300MB以上ありました。頻繁に更新するけど削除した記憶がない人はたぶんごっそり残ってるでしょうから、もう使わないものをザックリ消せば空き容量稼げるでしょう。

Play Framework インストール,プロジェクト作成,実行,eclipseでデバッグ(Windows編)

Java,Scala言語用フレームワーク Play Framework について、インストールからeclipseとの連携までを記載。基本的に公式ページ(日本語訳あり)を見ながらやるのがよいと思うのでここでは軽く流す程度にしておきます。※注意:Rails勉強中に見つけて興味持った程度なので詳しくはありません。

Play Framework 公式ページ。
https://www.playframework.com/
Play Framework ダウンロードページ。
https://www.playframework.com/download
ドキュメント。(2.3.x系、日本語)インストール・開発方法など一通り解説あり。
https://www.playframework.com/documentation/ja/2.3.x/Home

1.activator ダウンロード&インストール

今回試したPlay Frameworkのバージョンは2.3.7(activator 1.2.12)です。古いバージョンはメインとなるコマンドがplayコマンドでしたが、最近のバージョン(2.3以降?)ではactivatorというより汎用的なコマンドに変わっています。ダウンロード&ZIP展開してどこか適当なディレクトリに配置します。その他 Play Framework を使うにはJDK6以上が必要とのことなのでなければダウンロード&インストールしておきます。

2.環境整備

java, javac, activator コマンドがコマンドプロンプトで実行できるようPATH環境変数を設定します。設定後コマンドプロンプトを起動して

$ java -version
$ javac -version
$ activator help

を実行してバージョン情報・ヘルプ等表示されればOKでしょう。

3.プロジェクト作成

Playプロジェクトを作成するには“activator new [プロジェクト名]”を実行します。

$ activator new myapp

初回実行時は必要なファイルをダウンロードするので多少時間がかかります。しばらくするとプロジェクトの元となるテンプレートをどれにするか選択を求める画面が表示されます。

Fetching the latest list of templates…

Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-akka-java-seed
2) minimal-akka-scala-seed
3) minimal-java
4) minimal-scala
5) play-java
6) play-scala
(hit tab to see a list of all templates)

ここではJavaベースプロジェクトを作成するので“5) play-java”を選択します。これでmyappディレクトリの中にJavaベースのPlayプロジェクトが作成されました。activatorコマンドのプロジェクト名の後ろにテンプレート名を直接指定することも可能。

$ activator new myapp play-java

テンプレート選択画面にリンクがありますがテンプレートリストはhttp://typesafe.com/activator/templatesを参照。

4.実行&ブラウザで確認

プロジェクトを作成するだけで実行に必要なファイル・設定などが一式作成されますのですぐに実行できます。プロジェクトディレクトリに入って“activator run”を実行します。

$ cd myapp
$ activator run

ここでも初回実行時に必要なファイルをダウンロードするので多少(かなり?)時間がかかります。以下のようなメッセージが表示されたらサーバ起動成功です。

— (Running the application, auto-reloading is enabled) —

[info] play – Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console…)

ブラウザで“http://localhost:9000”にアクセスするとmyappプロジェクトの画面が表示されます。サーバ終了はCtrl-Dです。サーバ起動時にbind関連エラーが表示されるときは既に同じポート(9000)を他のプログラムがLISTENしている可能性があります。netstatコマンド等で確認してそのプログラムを停止するか、以下のようにしてLISTENポートを他の番号にしてください。

$ activator “run 9001”

※ダブルクォーテーションは必須です。
詳しくはこのあたりが参考になると思います。

5.Javaソース編集&ブラウザアクセス

ブラウザでアクセスしたときにまだコンパイルされていないJavaソースファイルがあると自動的にコンパイルされます。つまりJavaソースファイル修正&ブラウザアクセスだけで修正が反映されるということです。プロジェクトディレクトリ内にあるapp/controllers/Application.javaの

return ok(index.render(“Your new application is ready.”));

return ok(index.render(“Hello, World!”));

に変更してブラウザでアクセスすると、自動的にコンパイルされて変更後の内容がブラウザに表示されます。

6.eclipseにプロジェクトをインポート

Playではプロジェクトをeclipseにインポートできるよう設定を調整する機能が付いています。プロジェクトディレクトリ内で下記コマンドを実行するとeclipseにインポートできるようになります。

$ activator eclipse

コマンド実行後”[info] Successfully created Eclipse project files for project(s):”といった文字列が表示されれば完了。eclipseを起動してプロジェクトをインポートすればeclipseで開発できるようになります。

7.eclipseでデバッグ実行

eclipseでデバッグ実行するやり方。まずactivatorコマンドに-jvm-debug引数を付けてJavaVMをデバッグできる状態で起動します。

$ activator -jvm-debug run

次にeclipseのプロジェクト名を右クリックして「デバッグ」-「デバッグの構成」を選択。「リモートJavaアプリケーション」を選択して「新規の起動構成アイコン」を押下。デバッグ実行したいプロジェクトを選択してポート番号を9999(-jvm-debugのデフォルトポート)に変更して、適用ボタン押下、デバッグボタンを押下します。エラーダイアログ等表示されなければデバッグ状態になっています。先ほど編集したapp/controllers/Application.javaのindex()メソッドのreturn文にブレークポイントを貼ってブラウザでアクセスすると、そのブレークポイントで停止するはずです。

デバッグ用ポート番号はデフォルトで9999です。変更したいときは-jvm-debugの次に指定します。

$ activator -jvm-debug 9991 run

HTTPサーバ用ポートとデバッグ用ポート両方変更したいときは以下のようにします。

$ activator -jvm-debug 9991 “run 9001”

C#でJavaの@deprecatedみたいなことをする(Obsolete属性)

Javaでメソッドやクラスなどに@Deprecatedというアノテーションを付けると非推奨にできます。

開発環境によりますが例えばeclipseでは非推奨メソッドを使っているところでは取り消し線が引かれるので視覚的にわかりやすくて重宝します。

C#でこれと同じようなことをするにはObsolete属性を使います。

Obsolete属性を付けるとコンパイル後使用箇所に波線が表示されます。引数なしだと単なる警告として処理されます。引数に文字列を記述すると、エラー一覧ウィンドウの説明に引数の文字列が表示されます。

デフォルトは警告扱いですがエラーとして扱いたいときは第2引数にtrueを指定します。

言うまでもありませんが、警告はビルドできますがエラーはビルドに失敗します。ケース・バイ・ケースで使い分けるといいでしょう。