スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MacOS XのJAVA_HOMEの設定

MacOS XでJAVA_HOMEを設定するスマートな方法を調べていたら良さげなのがあったので紹介します。

■環境
MacOS X(10.9)
※ 10.7-10.9までは今回の方法で大丈夫そう

■内容
実はMacOS版のJDKにはJAVA_HOMEを求める為のコマンドがバンドルされています。
このコマンドの実行結果をそのままJAVA_HOMEに設定するという方法で変数設定を行います。
コマンドの場所はというと「/usr/libexec/java_home」にシンボリックリンクが存在しており、実態は以下の場所にあります。

ls -l /usr/libexec/java_home
lrwxr-xr-x 1 root wheel 79 3 10 15:30 /usr/libexec/java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

試しに実行してみると

/usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

見事にJAVA_HOMEの場所を教えてくれます。
複数のバージョンがインストールされている場合は、引数を指定することでバージョン毎のJAVA_HOMEの場所を教えてくれます。

usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
/usr/libexec/java_home -v 1.6
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

なかなか便利なコマンドではないでしょうか。
そしてこのコマンドの実行結果をJAVA_HOME変数に代入します。
「$HOME/.bash_profile」ファイル等に以下のコマンドを記述します。

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

以上です。
スポンサーサイト

LogJのConversionPatternの日付フォーマット

下記の例は、2010/01/01 00:00:00.000の形式で表示する場合の定義

-----
log4j.appender.accesslog.layout.ConversionPattern=%date{yyyy/MM/dd HH:mm:ss.fff},%m%n
-----

JavaのDNSキャッシュ

JavaのURLConnectionとかで参照したDNSの結果はキャッシュされるらしい。
デフォルトでは無限にキャッシュする為、参照先ホストのIPアドレスが変わった場合、
接続に失敗する。

DNS参照キャッシュの設定は以下のシステムプロパティで制御可能で、JVM起動オプションか
java.securityファイルを変更して設定する。

networkaddress.cache.ttl java.securityファイルの場合
sun.net.inetaddr.ttl JVM起動オプションの場合
※プロパティ名が異なるので注意

■Java Documentation
http://download.oracle.com/javase/6/docs/technotes/guides/net/properties.html

ConcurrentHashMap

スレッドセーフだけど、synchronizedMapよりはパフォーマンスが良いMap。
WEBアプリとか複数スレッドからアクセスされるデータのキャッシュ実装に使えそう。

http://www.ibm.com/developerworks/jp/java/library/j-jtp07233/
プロフィール

まこち

Author:まこち
スマートフォンのアプリ開発やWebサイト構築等を仕事や趣味でやっています。
最近はグラフデータベースも始めました。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。