Pages

2011年8月13日土曜日

jarをつくってみる

scalaで作られたTwitter clientがあると言うので
http://www.moongift.jp/2011/07/20110722-3/
ソースコードの勉強のために、ダウンロードしてみた。興味があったのは、以下の点
1. scalaで作ったweb applicationやコマンドではなく、クライアントアプリだということ。クライアントアプリケーションは、そのGUIとかどうしているのだろうか。
2. Twitter APIを利用しているはずだが、具体的には?

開発者のサイトをみて、実際にアプリケーションをインストールして判ったのは、
https://github.com/kaizawa/kotsubu
Java Web Startで配布されていること。Java Web Startは、未だ試したことがないので、これはいつか調べることにして、まずは jarファイルの作成までをやってみた。

Sakura VPSで作業をおこなったので、java関連のパッケージをインストール。
Jakarata Antをインストール。antは、yumからだと1.6系がインストールされてしまうので、これはApacheサイトからバイナリをダウンロード。
 $ yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel java-1.6.0-openjava-javadoc
 $ cd /usr/src/
 $ wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.8.2-bin.tar.bz2
 $ tar jxvf apache-ant-1.8.2-bin.tar.bz2
 $ mv apache-ant-1.8.2 /usr/local/ant

/etc/profile にPath情報を追加。
(どうも、以前 scalaをインストールしたとき、既にJava実行環境がはいっていたようだ。)
 export JAVA_HOME=/usr/java/default
 export ANT_HOME=/usr/local/ant                      # 追加
 export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin      # $ANT_HOME/bin 追加
 export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

ダウンロードしたTwitterクライアントのソースには、Twitter用のライブラリがはいっていない。
必要なTwitter4j(Twitter APIのJavaラッパー)を以下からダウンロード。
http://twitter4j.org/ja/index.html
どこにライブラリファイルを置いて良いのか判らないので、とりあえず build.xmlファイルと同じディレクトリにおいてみた。

 $ wget http://twitter4j.org/en/twitter4j-2.2.4.zip
 $ unzip twitter4j-2.2.4.zip
 $ mkdir twitter4j
 $ mv twitter4j-2.2.4.zip twitter4j
 $ cd twitter4j/
 $ unzip twitter4j-2.2.4.zip
 $ cp lib/twitter4j-core-2.2.4.jar ../kaizawa-kotsubu-7b37fd7/
 $ cd ../kaizawa-kotsubu-7b37fd7
 $ ant

javadocパートでコンパイルエラーがでた。jar本体は出来たようす。
 $ ls -l dist/
 合計 272
 -rw-rw-r-- 1 baker baker 268597  8月 10 17:46 kotsubu.jar
 drwxrwxr-x 2 baker baker   4096  8月 10 17:46 scaladoc  # なかは空っぽ

面倒くさいので、build.xml の パートのjavadocの部分を削除して再度、ant

# 変更前のbuild.xmlの一部
< target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>

# 変更後
< target depends="test,jar" description="Build and test whole project." name="default"/>

# ant コマンド発行の結果
-do-jar-with-manifest:
-do-jar-without-manifest:
-do-jar-with-mainclass:
     [echo] To run this application from the command line without Ant, try:
     [echo] java -cp "/home/baker/work/kaizawa-kotsubu-7b37fd7/dist/kotsubu.jar" kotsubu.Main
     [echo]                 
-do-jar-with-libraries:
-post-jar:
jar:
default:
BUILD SUCCESSFUL
Total time: 8 seconds

とりあえず、ここまで。
 $ ls -l dist/
 合計 272
 -rw-rw-r-- 1 baker baker 268597  8月 10 17:46 kotsubu.jar
 drwxrwxr-x 2 baker baker   4096  8月 10 17:46 scaladoc  # なかは空っぽ

0 件のコメント:

コメントを投稿