ksino's diary

覚えたことを忘れないように、小さなことでも書いていく。

java

java.util.DateのhashCodeを比較

java.util.Date#hashCodeメソッドはオーバーライドされており、「オブジェクトそのものの比較」には使えません。 http://docs.oracle.com/javase/jp/7/api/java/util/Date.html#hashCode()こんな処理を実行すると long current = System.currentTimeMillis()…

Ubuntu 14.04にOracke JDK 8をインストールする

PPAで楽してインストールします。 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installerあとは画面の指示に従っていくだけ。もしOpenJDKが導入済みであれば、Oracle JDKの導入前に消しておきます…

UbuntuにOpenJDKをインストールする

端末から以下を実行します。 sudo apt-get install openjdk-7-jdk参考 https://help.ubuntu.com/community/Java

Bytemanを使ってみる

Bytemanを使って、実行中のアプリの情報を取得してみます。 入手と導入 ここからダウンロードできます。 http://www.jboss.org/byteman/downloads.html 適当なディレクトリに展開し、展開先ディレクトリを環境変数BYTEMAN_HOMEとして設定しました。ついでに…

BTraceを使ってみる

アプリのモジュールに手を入れられない、デバッガも使えない、でも実行情報は取得したい…、というときに便利です。 入手と導入 このあたりからBTraceを入手し、任意のディレクトリへ解凍します。 https://kenai.com/projects/btrace/downloads/directory/rel…

jpsコマンドで何も表示されない

javaプロセスを実行中に、jpsコマンドを叩いても何も表示されない、、というトラブルがありました。javaは実行すると環境変数%TEMP%以下に"hsperfdata_"というディレクトリを作成するようです。Windows 7のデフォルトなら↓ですね C:\Users\<ユーザ名>\AppDat…

FacesContextを扱うクラスの単体テスト

FacesContext.getCurrentInstance().getViewRoot()とかやってるクラスの単体テストをやる必要がありました。しかし、単純にJUnitを起点にFacesContext.getCurrentInstance()が叩かれると、nullが返ってくるんですね。どうしたもんだろ?と考えたのですが、mo…

JDK組み込みのJavaScriptエンジンを使う

JDK6からはJavaScriptエンジンが組み込まれています。 以下のコマンドで実行できます。 <JAVA_HOME>\bin\jrunscript.exe以下のように実行します。 > jrunscript test.js引数を指定しなければ対話モードで起動します。 > jrunscript</java_home>

Apache POIでExcelのファイルを読み込む

以下のExcelファイルを読み込みます。 # name point 1 ベッテル 397 2 アロンソ 242 3 ウェバー 199 POIを使ったコードはこんな感じ。 import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.ss.usermodel.Cell; import org.a…

UTF-8なソースをJavaソースをコンパイル、実行する on Windows with Cygwin

僕が使っているCygwinコンソールでは、文字コードをUTF-8にしています。 WindowsではデフォルトのエンコーディングがMS932になっています。 よって、UTF-8のソースをコンパイル、実行するためにはオプションの指定が必要です。コンパイル $ javac -encoding …

JavaとRubyの例外処理の書き方の違い

Java try { // 処理 } catch (Exception e) // 例外処理 } finally { // 後始末とか } Ruby begin # 処理 rescue => e # 例外処理 ensure # 後始末とか end

JSFのフェーズ

いつも忘れてしまうのでメモ。。Restore View Phase (1) Apply Request Values Phase (2) Process Validation Phase (3) Update Model Values Phase (4) Invoke Application Phase (5) Render Response Phase (6)

privateなインナークラスをリフレクションで触る

privateなインナークラスをリフレクションで触る方法について調べました。 Constructorクラスを取得する際の引数列がポイントかな。。 対象のクラス public class OuterClass { public String outer(String str) { InnerClass inner = new InnerClass(str); …