Java

Mapをvalueで降順ソート

http://d.hatena.ne.jp/techmedia-think/20080606/1212747322 これを参考に作ってみた。 コンパイラの警告を無くすために型パラメータを付けまくったら見た目がひどいことになった。 import java.util.Collections; import java.util.Comparator; import jav…

WindowsXPのシステム時刻をNTPで調整する方法

覚書。やや手抜き。 Windowsの自動時刻合わせ機能をONにしてから同期しているので、同期後にOFFにしたいなら第二引数をfalseにする。 このままでは時刻合わせが成功したかどうかは判定できない。 実際はprocessの標準出力と標準エラー出力を処理しないと危険…

DocumentBuilderでエラー出力が出る

Java6u10c:/temp/test.txtは実在する非XMLファイル。 import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class Test { public static void main(Stri…

コンソール入力

覚書です。バックスペースとか入力しても問題無いけど、InputStreamReaderが勝手に処理してくれるのかな? public static String getStringFromConsole(String message) { StringBuilder sb = new StringBuilder(); try { char c = 0; System.out.print(mess…

Windowsタスクを殺す方法

覚書です。実際はprocess.getInputStreamとprocess.getErrorStreamを処理する必要あり。 public static void killTask(String taskName) throws Exception { ProcessBuilder pb = new ProcessBuilder("taskkill", "/F", "/FI", "IMAGENAME eq " + taskName);…

Java6のコンパイラでコンパイルするときにJava6以降でしか使えないメソッドがあったらエラーにする方法

Java6のjavacで-target 1.5を指定してコンパイルし、Java5で実行すると、Java6以降にしか無いメソッドを実行したときにNoSuchMethodErrorになる。Java6のコンパイラでコンパイルするときにJava6以降でしか使えないメソッドがあったらエラーにするには下記の…

JavaでMix-inっぽいことをやってみた

必要に駆られて作ってみたけれど、例としてはイマイチな気がする。 参考:Java : Mixin(多重継承)とかパーシャルクラスとか - lethevert is a programmer矢印は実装の継承の方向。 JFrame extends Window JDialog extends Window これら2つのクラスに対し…

longとfloatの足し算の落とし穴

longとfloatの足し算を行なうと精度が落ちるので注意が必要だ。 コンパイラが警告してくれてもいいのに。ソースコード public class Test { public static void main(String[] args) throws Exception { System.out.println("1000000000000L + 1 - 100000000…

finallyの挙動

public class Test { public static void main(String[] args) throws Exception { String s = null; try { s.length(); } finally { s.length(); } } } ↑こういうことをすると5行目と7行目で例外が発生するが、実際にthrowされるのは7行目だけ。 public cla…

JavaでWindowsをダウンさせる方法?

こういうプログラムを走らせて一定時間経過後に強制終了させると、タスクバーが固まったり最悪リブートに失敗してリセットボタンを押す羽目になったりする。くわばらくわばら import java.io.File; import java.io.RandomAccessFile; public class Test { pu…

実行形式jarのmanifest.mfに絶対パスのClass-Pathを指定する方法

通常manifest.mfにはクラスパスを相対パスで指定できる。 単純な方法ではクラスパスを絶対パスで指定する方法は無いかもしれない。続きはあとで書く・・書かないかも。

Mac版Eclipseの日本語化

Mac版Eclipseの日本語化は Pleiades1.2.1を使うべし。1.2.2p3では失敗する。 日本語化の参考ページ:http://www.hideshi.jp/macosx/android/eclipse-jp.html

antcallは別スレッドで走る?

<target name="x"> <antcall target="a" /> <antcall target="b" /> </target> <target name="a"> (それなりに重いタスク群A) </target> <target name="b"> (それなりに重いタスク群B) </target> とか書いてxを実行すると、aとbが同時に実行されてしまうようだ。 順番に1つずつ処理させるには、 <target name="x" depends="b"> </target> <target name="a"> (それなりに重いタスク群A) </target>

Antと格闘

Antにpropertiesファイルを読ませようと思ったが、日本語を扱うにはNative2Ascii が必要で、それを使うためにはオプションライブラリが必要だとかで面倒なことこの上ないので、別な方法で何とかすることにした。Java in the boxの記事を見ると、TigerからはP…

VM引数で変数を書き換えるテスト

リフレクションを使ってオブジェクトのフィールドを書き換えてみる。 publicで先頭が大文字のint, boolean, Stringのフィールド(コーディング規約違反だけど気にしない)にのみ対応。Test.java import java.lang.reflect.Field; import java.lang.reflect.Mod…