Java
Up one levelJRE1.5.0_x+Vistaで発生するタイムゾーンバグ
開発用PCのOSをVistaに変更したら、Javaランタイムでタイムゾーンが正常に取れなくなりました。
SunのBugレポートを漁ってみたら、Vistaでシステムのタイムゾーンを識別するレジストリのキーが変更されたのが原因とのこと(下記リンク先参照)。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6440819
確かにレジストリのタイムゾーンの指定キーが XP:StandardName -> Vista: TimeZoneKeyName に変わってました。
で、このBugが修正されたのは1.5.0_10だったので、使用していた1.5.0_7では発生してしまっていたというわけでした。
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/nagai/30de30a430ca30fc30fc30e730f3547d904b309252063051308b3001jre1-5-0_x-vista767a751f3059308b30bf30a430e030fc30f3/tbping
OSのバージョンによるJavaのシステムプロキシ設定自動検出の可否
Javaプログラム実行時にプロキシ経由接続が必要だと、java.net.ConnectExceptionが発生する場合があるようです。
今日Saxon+XSLTを使ったXML変換処理を行う際に発生する環境がありました(Saxonが接続しに行くのは、指定されたDTDを取りに行く為です)。
後述するSunのドキュメントで調べたところ、OSのバージョンによって自動でシステムのプロキシ設定を検出できないものがあり、
"最近のWindowsでは対応している"とのこと (なんて抽象的な!)。そしてどうやらVistaがこれに当たり、XPは該当しないようです。
自動検出されないOSの場合は、手動設定します。実行時に以下のいずれかのVMオプションを追加します。
・プロキシを直接指定する場合: -Dhttp.proxyHost=[ホスト名] -Dhttp.proxyPort=[ポート番号]
・システムのプロキシ設定を検出する場合: -Djava.net.useSystemProxies=true
例えば今回のSaxon+XSLTの場合は、
java -Djava.net.useSystemProxies=true -jar saxon8.jar -o out.xml in.xml transform.xsl
というようにします。
これらについてのより詳しい情報は、Sunの提供している"JDK Programmer Guides”に詳しく載っています(下記URL)。
http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/nagai/java30ed30e930e05b9f884c6642306b30ed30ad30b77d4c753163a57d9a3059308b/tbping