カテゴリーアーカイブ: Java

JProjectTimerなどの.jarアプリケーションは、あまりMacで困る事はないのですが、ランチャーソフトとかに登録出来なかったりすることがあるので便利。

Xcode開発環境に含まれるJava Tools以下にあります。
/Developer/Applications/Java Tools/Jar Bundler


Build InformationのMain Classにjarアプリケーションを指定。
お好みでアイコンも指定。
Classpath and Filesに追加するjarクラスファイルを指定する。
Create Applicationを押してファイルの作成。

これで.appなアプリケーションの完成。

RC1が置いてあったが、8月くらいに1.0が出るらしい。

Java EE Webアプリケーションフレームワーク
http://click.sourceforge.net/

大規模なプロジェクトじゃほとんど見る事のないフレームワークだけど、ちょっとしたWebアプリケーションならこれで十分じゃないかな。
StrutsやSpringよりは実装が簡単です。

とりあえず以下のような感じでインストール&設定してみました。

http://www.apache.org/
http://tomcat.apache.org/
http://java.sun.com/javase/downloads/

Apache2.2のインストール

tar zxvf httpd-2.2.2.tar.gz
cd httpd-2.2.2
./configure –prefix=/usr/local/apache2 –enable-mods-shared=all –enable-proxy=shared –enable-proxy-ajp=shared –enable-dav=shared –enable-dav-fs=shared –enable-rewrite=shared –enable-so
make
make install

JDKのインストール

./jdk-1_5_0_97-linux-i586.bin
export JAVA_HOME=/path/to/jdk
export PATH=$PATH:$JAVA_HOME/bin

Tomcat5.5のインストール

tar zxvf apache-tomcat-5.5.17.tar.gz
tar zxvf apache-tomcat-5.5.17-admin.tar.gz
ln -s /path/to/apache-tomcat-5.5.17 tomcat
export CATALINA_HOME=/path/to/tomcat
export TOMCAT_HOME=/path/to/tomcat

httpd.confの編集
confファイルの構成が変わっているようです。

conf/httpd.conf
conf/extra/httpd-*.conf

アクティブにするファイルのコメントを外して、Tomcat用の設定ファイルを作成します。

vi conf/extra/httpd-tomcat.conf
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<ocation /jsp-examples/>
ProxyPass ajp://localhost:8009/jsp-examples/
</Location>
vi conf/httpd.conf
Include conf/extra/httpd-tomcat.conf

次回以降、mod_proxy_balancerでバランサーの設定もしてみたいと思います。

インストールって言うほどではないのですが、割と使う機会があるようなので設定してみました。
ここから
Standard 1.0 Taglib
もしくは
Standard 1.1 Taglib
のリンク先よりアーカイブをダウンロード。

解凍したファイルのlibディレクトリの中にあるjstl.jar、standard.jarをそれぞれのアプリケーションディレクトリの/WEB-INF/libのなかに置く。
分からなければ全部置いてもいいかも。

使い方の一例

<%@ page contentType="text/html;
  charset=euc-jp" pageEncoding="euc-jp" %>

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>

<html>
<head>
<title>jstl test</title>
<meta http-equiv="Content-Type"
    content="text/html; charset=EUC-JP" />
</head>
<body>
<h1>JSTLテスト</h1>
<p>普通に表示 <%="<b>テスト</b>"%></p>
<p>タグを使って表示 <c:out value="<b>テスト</b>" /></p>
<p>HTMLタグをエスケープしない
  <c:out value="<b>テスト</b>" escapeXml="false" /></p>

<h2>いろいろな表示</h2>
<%
	String str = "<b>テスト</b>";
	request.setAttribute("test",str);
%>
<p>表示1 <%=request.getAttribute("test")%></p>
<p>表示2 <c:out value="${test}" /><p>

</body>
</html>

ほかにも条件分岐や繰り返しといった制御系のタグもあります。

PHPにも似て非なるSmartyがありますね。
カスタムタグよりは使いやすいのかな。

javaでexcelの操作をするAPI

http://jakarta.apache.org/poi/のDownloadから適当なリンクをクリックする。
今回はhttp://ftp.kddilabs.jp/infosystems/apache/jakarta/poi/dev/bin/poi-bin-2.0-RC2-20040102.tar.gzから取得。

解凍して出来たファイルのpoi-2.0-RC2-20040102.jarを適当なディレクトリにコピーする。

サンプルファイルを作成

hoge.java

import java.io.*;
import org.apache.poi.hssf.usermodel.*;
import java.util.Date;

public class hoge{
	public static void main(String[] args){
		HSSFWorkbook workbook = new HSSFWorkbook();

		//シートを2枚作成
		HSSFSheet sheet1 = workbook.createSheet("hoge");
		HSSFSheet sheet2 = workbook.createSheet("test");
		//2枚目のシートの名前を日本語に変更する
		workbook.setSheetName(1,"テスト",HSSFWorkbook.ENCODING_UTF_16);

		//1枚目のシートにセルを作成する
		HSSFRow row = sheet1.createRow(0);
		HSSFCell cell = row.createCell((short)1);
		HSSFCell cell2 = row.createCell((short)2);
		HSSFCell cell3 = row.createCell((short)3);
		HSSFCell cell4 = row.createCell((short)4);
		HSSFCell cell5 = row.createCell((short)5);

		//値を定義
		boolean val1 = true;
		String val2 = "hogehoge";
		Date val3 = new Date();
		double val4 = 1234.56;
		String val5 = "ほげほげ日本語";

		//日本語を使うためcell5をエンコード
		cell5.setEncoding(HSSFCell.ENCODING_UTF_16);

		//cell3を日付型にセット
		HSSFCellStyle styleDate = workbook.createCellStyle();
		styleDate.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));
		cell3.setCellStyle(styleDate);

		//セルに値をセット
		cell.setCellValue(val1);
		cell2.setCellValue(val2);
		cell3.setCellValue(val3);
		cell4.setCellValue(val4);
		cell5.setCellValue(val5);

		FileOutputStream out = null;
		try{
			//ファイルに書き出し
			out = new FileOutputStream("hoge.xls");
			workbook.write(out);
		}catch(IOException e){
			System.out.println(e.toString());
		}finally{
			try{
				out.close();
			}catch(IOException e){
				System.out.println(e.toString());
			}
		}
	}
}

コンパイルして実行。
クラスパスが通っていなければ付け加える。

javac -classpath /j2sdk/jar/poi/poi-2.0-RC2-20040102.jar hoge.java
java -classpath /j2sdk/jar/poi/poi-2.0-RC2-20040102.jar:. hoge

1シート目の一行目に5個の値が入ったファイルができる。

j2sdk-1_4_2_04-linux-i586.bin
jakarta-tomcat-4.1.30-LE-jdk14
httpd-2.0.49

表示URL
http://hogehoge.com/test
ホームディレクトリ
/home/www/***/test

# mkdir /home/www/***/test
# mkdir /home/www/***/test/WEB-INF
# mkdir /home/www/***/test/WEB-INF/classes
# mkdir /home/www/***/test/WEB-INF/lib
# touch /home/www/***/test/WEB-INF/web.xml

# vi /***/tomcat/conf/server.xml

# vi /***/apache2/conf/workers2.properties
[uri:/test/*]

# /***/tomcat/bin/shutdown.sh
# /***/tomcat/bin/startup.sh
# /***/apache2/bin/apachectl restart

表示URL
http://***/test

j2sdk-1_4_2_04-linux-i586.bin
# cd /usr/local
# chmod 755 j2sdk-1_4_2_04-linux-i586.bin
# ./j2sdk-1_4_2_04-linux-i586.bin
# ln -s /usr/local/j2sdk-1_4_2_04 /usr/loca/j2sdk

パスを設定
# export JAVA_HOME=/usr/local/j2sdk
# export PATH=$PATH:$JAVA_HOME/bin

jakarta-tomcat-4.1.30-LE-jdk14
# ln -s /usr/local/jakarta-tomcat-4.1.30-LE-jdk14 /usr/local/tomcat

jakarta-tomcat-connectors-jk2-src-current.tar.gz
jakarta-tomcat-connectors-jk2-2.0.4-src
# cd jk/native2
#./configure \
--with-apx2=/usr/loca/apache2/bin/apxs \
--with-tomcat41=/usr/local/tomcat
# make
# cp ../build/jk2/apache2/mod_jk2.so /usr/local/apache2/modules/
# cp ../conf/workers2.properties /usr/local/apache2/conf/

# vi apache/httpd.conf
LoadModule jk2_module modules/mod_jk2.so

# vi tomcat/conf/server.xml
port 8080 をコメントアウト

起動 tomcat → apache2
停止 apache2 → tomcat