2006-01-01から1年間の記事一覧

ショートカットキーの変更

昨日の続き。 よく考えたら、Ctrl+Pを無効にすればいいんじゃんと気付く。 Window→Preferencesの設定画面を開く。 General→Keysの画面で、Ctrl+Pをremoveしちゃる。 消しちゃったら復活できるのかな? 一生使わない気がするし、まーいっか。

印刷マジック

とあるクラス名を途中まで入力 Ctrl+space 選択画面が出るまでラグがあるので、次の文字の"p"を入力 2と3のタイミングが悪くCtrl+pとなる→印刷ダイアログ "p"を入力した時点でコード補完の候補のトップにくる(はずな)ので、そっこーでEnterを押している En…

Antのデバッグ

Eclipseを使うと、ビルドファイルをステップ実行できる。 でも、ビルドファイルからタスク内のコードには飛べない。 なので、タスク実行時のパラメータやカレントスレッドの情報を 調べられなかった。 で、悩んだ結果。 AntをMainから実行すればよかったこと…

VTL

Velocityのテンプレートの記述で、誤解していたことが色々あったので まとめておく。 if内で、and, orが書けない・・・。と思いきや、&&と||で書ける罠。 VTLのリファレンスには載っていないけど、Velocity User Guideにあるとは。 and, orのために、こんな…

configurationの指定方法

Mavenのpom.xmlでは、configurationでプラグインの設定を色々と行えるが、 型によって指定方法が違ったりするので、メモっておく。 基本は、Mavenのマニュアルから。 Stringやらintやら 普通に指定。 <param>hoge</param>paramはパラメータ名。 配列 private String[] strin…

CPDのXML出力

静的解析ツールのPMDには、CPDという重複コードを検出する機能がある。 こいつをAntで使っていたが、テキストベースのレポートしか出力できないと 思ってた。 でも、format属性を使えば、できるじゃん。 <taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" classpath="pmd-3.8.jar" /></taskdef>

Webアプリ

引き続き、試験的にMavenをさわっているので、ちょいとメモ。 今回はWebアプリ系。 Webアプリのプロジェクトの作成は、 -DarchetypeArtifactId=maven-archetype-webappを指定する。 Webアプリのプロジェクトの場合、ソースコード用のフォルダsrc/main/javaは…

プロパティ≠変数

知ってはいたけど、再確認。 <property name="prop1" value="ykhr" /> <echo message="${prop1}" /> <property name="prop1" value="kokko" /> <echo message="${prop1}" /> 結果。 [echo] ykhr [echo] ykhrってなわけで。 変数っぽく使いたい場合は、Ant-ContribのVarを使うのかなぁ。</echo></property></echo></property>

続・0

前の続き。 変数で0を入れる場合、0は何個かいてもいい。 # 限界があるかもしんないけど。 int i = 00000000000000000000000000000000000000;こんなん、意味あんの? というか間違ってこんな実装してた。 for (int i = 0; i // 色々処理 }ループになってない…

Antの前処理と後処理

ant.batを見ていて気付いたこと。 ant.batを実行すると、まず始めに%HOME%/antrc_pre.batがコールされ、 終了前には%HOME%/antrc_post.batがコールされるように作られている。 (両方とも、該当のバッチファイルがあったときのみ) なので、前処理・後処理用…

JavaでXSLT

そういや、Antからしかやってなかったなーということで。 XMLとXSLTは、ちょうど手元にあったCheckstyleのもの。 Source xml = new StreamSource(new File("checkstyle.xml")); Source xslt = new StreamSource(new File("checkstyle-simple.xsl")); Result …

Mavenを触り始めたので、ちょこっとだけ。 proxyを使う場合は、conf/settings.xmlをいじる。 pom.xml はプロジェクト関連の設定ファイル。ないものは、デフォルトが使われる。 Eclipseプラグインとして、m2eclipseなるものがある。こいつで、Eclipse上からMa…

EnumeratedAttribute

Antタスクの属性で、「ある決まった値の中から1つのみを指定させる」というようにしたい場合がある。 例えば、echoタスクのlevel属性の指定(errorやらinfoやら)みたいに。 これを実現するためのクラスとして、EnumeratedAttributeがある。 これを使えば、E…

誤変換

試験項目表→試験高目標・・・ そりゃー高い目標でありたいもんだ。 そういや、カラム名→絡む姪なんてのもあったなぁ。

JUnit

JUnitは、テストメソッドがstaticでもテストする。 ・・・。 最近、こんなどーしよーもないものを思いつくことが多い気がするなぁ。

H2データベース

ひょんなことから、H2データベースというものを知ったので、試してみる。 公式サイトは、ここらへん。 とりあえず、トップページにパフォーマンス比較があるけど、これってマジなんですかね。 インストールと実行 めんどいので、インストールはすべてデフォ…

WTP&Tomcatのデータソースの設定

なんか、そこらじゅうでデータソースのlookupに失敗するってのを聞くので、試してみる。 ついでに、WTPをさわってみる。そろそろ慣れとかないと。 環境 jdk 5.0 Tomcat 5.5.20 Eclipse 3.2 + WTP 1.5 + HsqlDB Tomcatが5.0の場合は、Resourceのパラメータへ…

-0

0は-0とも書ける!! int i1 = 0; int i2 = -0;まぁ0と変わりないんだけど・・・。 なんか意味あんのかな?

Javaプログラムからコンパイル

JSE6.0からならデフォルトでできるらしいけど、 5.0とかでも無理やりできるらしい。 import java.io.PrintWriter; import com.sun.tools.javac.Main;public class CompileTest { public static void main(String[] args) { String source = "C:/tmp/source/T…

小数点

小数点で整数部分が0だったら、その0を省略してもいいらしい。 こんなふうに。 double d1 = .0111; float f = .0234f;身近なところなのに、知らなかった。 でも、0を付けた方が可読性はいいような気がするので、使う機会はなさげ。

正規表現の単語構成文字

Javaの正規表現の\wは、単語構成文字と説明されている。 実はこれ、アンダースコアにもマッチする。 一応、Javadocの説明。 \w 単語構成文字: [a-zA-Z_0-9] 実験くん。 public static void main(String[] args) { Pattern pattern = Pattern.compile("[\\w]+…

Antでログ出力3

とりあえず用。echoタスクを使う。 <target name="exec1"> <echo file="log1.txt">Hello</echo> <echo file="log1.txt" append="true">OH!</echo> <echo file="log1.txt" append="true">Good-bye</echo> </target> でも、改行が出力されないので、すべて1行に表示されてしまう。 下のようにやれば複数行で出力されるけど、美しくない。 改行コードが\nになっちゃうし。 <target name="exec2"> </target>

Antでログ出力2

Antで、必要な部分のみをログ出力する。 この場合、recordタスクを使う。 こんな感じ。 <record action="start" name="record.txt" /> <echo message="hoge" /> <delete file="a.txt" /> <record action="stop" name="record.txt" /> record.txtの内容。 [echo] hoge [delete] Deleting: C:\tmp\a.txt recordタスクを使用すると、startとendの間の処理がファイルに出力されるようになる。 内容は標</record></delete></echo></record>…

Antでログ出力

タスク内からもログ出力みたいなことはできるけど、とりあえず一番楽な方法。 ant実行時に、以下のようにオプションを付ける。 ant -l log.txt lオプションで、ログがファイルに出力されるようになる。 内容は標準出力されるものと同じなので、リダイレクト…

Robotクラス

Javaで、プログラムからマウスを動かしたりキーを入力したりするために java.awt.Robotクラスというがあるらしい。 主な目的は「Java プラットフォーム実装テストを自動化すること by Javadoc」だそうだ。 試しにさわってみる。 まずは、こんなの。 public s…

arg要素のvalue属性とline属性の違い

Antのjavaタスクやexecタスクは、arg要素を指定することができる。 このarg要素では、value属性とline属性のどちらでも引数を指定できるけど、 ちょっとした違いがあってややこしい。というか、どっち使えばいいかわからん。 というわけで、さくっと確認して…

文字列の置換

文字列の置換にはString#replaceAllを使うことが多い。 # 別にPatternとか使ってもいいけど、めんどいので。 でも、なんだかうまくいかないことがあった。 円マーク1つを2つに置換する、という処理を実装しようとした。 この場合、replaceAllに渡す引数は、…

@seeタグ

@seeやら@linkやらは長くなりがちだけど、1行で書け! とはリファレンスに書いてないけど、改行を含んでいいとも書いてない。 というか、改行を含んで書いたもののJavadocを生成すると、 警告は出ないけど表示がバグってるわけで、1行で書かないとだめなのか…

SQLで正規表現

DBによっては使えるらしい・・・。 知らなかった。 でも、プロジェクトでは使わないかなぁ。

log4j.xmlの指定

Log4jは、パスの通ってるところにlog4j.xml(log4j.propertiesでも?)があれば 勝手に読み込むけど、環境変数からファイルを取得するようなコードがソースにあった。 なので、javaコマンド実行時に以下のオプションをつければ、 指定したlog4j.xmlが優先的に…