趣味でJava。

最近、趣味ではもっぱらアセンブラJavaScriptRubyしか使ってないので、気分転換にJavaを使ってみようと思い、まずは開発環境を構築してみました。

環境は、ThinkPad(X60s)+Windowsで、ひとまず JavaEclipsemaven があればいいかなという感じです。(メモリ512MBのノートなので、発注したメモリが届くまでは、DBとかTomcatは後回し o...rz)メモリ2GB追加しました。X60sの低位機種でも、メモリがあればそこそこ動きますね。

前提

  • ポータビリティ
    • 開発環境をZIPアーカイブして使い回しするために、可能な限り絶対パスは控えてます。
    • c:\tmp\devenv という絶対パスを以下で使用していますが、これは、環境作成時の置き場所であり、環境設定内部にこのフォルダ名を出すことは極力避けます。
    • 環境設定内に絶対パスが出る場合、環境アーカイブ展開後に、独自の環境にあわせる必要があるため、そのためのマニュアルを用意します。

MySQLのインストール

Java開発環境なのに何故にDBという感じですが、Web系の場合はDBはほぼ必須なので、環境を作っておきます。個人的にMySQLを使うことが多いので、入れておきます。昔は Derby とか使っていたのですが、DBは実装の差異が大きすぎて、本番とほぼ同様の物を使わないと意味がないことを悟りました。

  • インストール
    • 展開して、c:\tmp\devenv\mysql に配置。
  • バックアップ
    • 複数インスタンス用に、data フォルダを data.orig としてコピーしておく。
  • 設定
    • 複数のインスタンスから参照される設定ファイルがあるとめんどうなので、削除。Windowの場合は以下。
C:\my.ini
C:\my.cnf
C:\WINDOWS\my.ini
C:\WINDOWS\my.cnf
    • 設定ファイルの作成
      • パス : c:\tmp\devenv\mysql\my.ini
      • 内容
[client]
default-character-set = utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
log = logs/log.log
log-bin = logs/binlog.log

[mysqldump]
default-character-set = binary
    • ログフォルダとして、 c:\tmp\devenv\mysql\data\logs フォルダを作成する。
    • サーバの起動方法 : mysqld-nt.exe --standalone
    • クライアントの起動方法 : mysql.exe

Eclipseのインストール

Eclipseは、http://www.eclipse.org/downloads/ の "Eclipse IDE for Java EE Developers" から最新版をダウンロードして c:\tmp\devenv\eclipse に配置しました。

JDKのインストール

普通にJDKをインストールすると、Windows全体に影響してしまってめんどくさいですよね。複数のバージョンの使い分けとかしたいし。ということで、JSEの最新版をダウンロードして、インストールして、フォルダを以下に移動して、JSEをアンインストールしました。

  • C:\tmp\devenv\jdk

eclipseの基本設定

eclipse.iniファイルの設定

jreだとダメなプラグインがあったりするので、vmjre ではなく jdk を指すようにしておきます。メモリサイズ等は環境に合った値を選択します。

-vm
..\jdk\bin\java.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms256m
-Xmx768m
-XX:PermSize=32m
-XX:MaxPermSize=512m

※以前は jreeclipse フォルダ以下に置く方法をとっていましたが、jre だとダメというわがままなプラグインもあるため、 jdk を指定するようにしています。

ワークスペースを作成

まずは、Eclipseの基本設定をするために、Eclipseを起動し、ワークスペースを以下に設定しました。

  • workspace

※意図的に相対パスにしています。

ワークスペース内のデフォルト文字エンコーディングutf-8 に設定

以下にて、Text file encoding を、Other : UTF-8 に設定します。

[Window] -> [Preferences...] -> [General] -> [Workspace]

これで、javaのソース等のファイルが、UTF-8 として作成されるようになります。

resourceプロジェクトの作成。

Eclipseの共通設定関連ファイルの置き場所として、resourceという名前の空のプロジェクトを作成しました。

eclipsejdkのソースをアタッチ
  • C:\tmp\devenv\jdk\src.zip を、アーカイブのまま resource プロジェクトにコピー。
  • Window -> Preferences... -> Java -> Installed JREs に移動。
  • Installed JREs として、Location が C:\tmp\devenv\jdk のものを選択して、Edit... ボタンを押下。
  • C:\tmp\devenv\jdk\jre\lib\rt.jar を選択。
  • Source Attachement... ボタンを押下。
  • Workspace... ボタンを押下。
  • resource/src.zipを選択。
eclipseJavaDocをアタッチ
  • Sunのサイトからドキュメントをダウンロードして、アーカイブのまま resource プロジェクトにコピー。
  • Window -> Preferences... -> Java -> Installed JREs に移動。
  • Installed JREs として、Location が C:\tmp\devenv\jdk のものを選択して、Edit... ボタンを押下。
  • C:\tmp\devenv\eclipse\jre\lib\rt.jar を選択。
  • JavaDoc Location... ボタンを押下。
  • Javadoc in archive と Workspace file を選択。
  • Archive path を設定。(ex. resource/jdk-6-doc.zip)
  • Path within archive を設定。(ex. docs/api

ソース上の対象を選択してShift+F2キーを押せば、システム設定のブラウザ経由でJavaDocが起動します。

m2eclipseの設定

eclipse 上から maven を使用したいので、m2eclipseをインストールしました。その際、オプショナルコンポーネントは外しました。

[Help] -> [Software updates] -> [Find and Install...] -> [Search for new features to install] -> [New Remote Site...]

[Window] -> [Preferences...] -> [Maven] にて、以下のオプションをチェック。

  • Download Artifact Sources
  • Download Artifact JavaDoc
Subclipseの設定

eclipse 上から svn を使用したいので、Subclipse をインストールしました。その際、オプショナルコンポーネントは外しました。

[Help] -> [Software updates] -> [Find and Install...] -> [Search for new features to install] -> [New Remote Site...]

SVN インタフェースを SVNKit (Pure Java) に設定します。
[Window] -> [Preferences...] -> [Team] -> [SVN] -> [SVNインタフェース] -> [SVNKit (Pure Java)]


以下のように、プロパティの自動設定を行います。参考

C:\tmp\devenv\eclipse\conf\svn\config ファイルを以下のように作成します。

[miscellany]
enable-auto-props = yes

[auto-props]
*.java = svn:keywords=Date Revision Author Id

[Window] -> [Preferences...] -> [Team] -> [SVN] から、設定ファイルの場所として C:\tmp\devenv\eclipse\conf\svn フォルダを指定します。

内部的に絶対パスで扱われてしまうので、以下のように変更。

  • ファイル
C:\tmp\devenv\eclipse\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.tigris.subversion.subclipse.ui.prefs
  • 変更する箇所
pref_svnconfigdir=C\:\\tmp\\devenv\\eclipse\\conf\\svn
  • 変更後
pref_svnconfigdir=conf\\svn
Java のコードフォーマッタの設定

以下の記事に書かれているフォーマットを、SVNからダウンロードして、インポートする。

XML のコードフォーマッタの設定

以下の記事を参考に、インデントをスペース2文字、行の最大文字数を120にする。

mavenのサンプルプロジェクトの作成

実験的なプログラムをすぐに書きたい場合などは、出来合いのプロジェクトがあると便利なので、作成しておきます。

  • [New] -> [Project...] -> [Maven/Maven Project]
  • Create a simple project にチェック。
  • Use Maven output folders にチェック。
  • Advanced/Enable resource filtering にチェック。
  • Advanced/Use Maven output folders にチェック。
  • Group Id: sample
  • Artifact Id : sample
  • Name : sample

sampleプロジェクトのコンパイラのバージョンを、6.0に設定します。

サンプルのクラスも作っておきます。

  • sample.Sampleクラス
  • 空のmain文

pom.xmlに、sun系のリポジトリ・ロケーションも追加しておきます。pom.xmlは以下。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>sample</groupId>
  <artifactId>sample</artifactId>
  <name>sample</name>
  <version>0.0.1-SNAPSHOT</version>
  <description/>

  <repositories>

    <!-- a mirror of central repository. -->
    <repository>
      <id>maven2-repository.mirrors.ibiblio.org</id>
      <name>Mirrors.ibiblio.ort Repository for Maven</name>
      <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
      <layout>default</layout>
    </repository>	

    <!-- for Sun's binary license. -->
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/</url>
      <layout>default</layout>
    </repository>

    <!-- domaingen's own repository. -->
    <repository>
      <id>maven2-repository.domaingen.sourceforge.jp</id>
      <name>Domaingen.sourceforge.jp Repository for Maven</name>
      <url>http://domaingen.sourceforge.jp/maven2/</url>
      <layout>default</layout>
    </repository>

    <!-- for hibernate -->
    <repository>
      <id>maven2-repository.jboss.org</id>
      <name>jboss Repository for Maven</name>
      <url>http://repository.jboss.org/maven2/</url>
      <layout>default</layout>
    </repository>

  </repositories>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <encoding>utf-8</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>5.8</version>
      <scope>test</scope>
      <classifier>jdk15</classifier>
    </dependency>
  </dependencies>

</project>

Tomcat の設定

ダウンロード&インストール

Tomcatサイトから、安定版の最新のバイナリの zip をダウンロードし、展開し、c:\tmp\devenv\tomcat として配置します。

開発環境アーカイブの作成

開発環境をいつでも何処でも簡単に使えるように、C:\tmp\devenv フォルダをアーカイブしました。こうしておくと、簡単に持ち運びできるので便利です。Windowsデフォルトの圧縮機能を使うと、ドットで始まるフォルダが無視される場合があるので、フリーのアーカイバで圧縮しました。

ということで、最低限 Java, eclipse, maven が使える環境は整ったかな。まだまだ足りないものも多いし、微調整もこれからですが、最初の一歩としては、こんな感じでしょうか。

追記、TODO