Java

Javaの JIS X 0213:2004のサポート

とある情報によるとJava7からJIS X 0213:2004がサポートされると聞いたので早速チェック*1。下記のソースが追加されていることを確認しました*2 。動作チェックはまた今度。 src/share/classes/sun/nio/cs/ext/MS932_0213.java src/share/classes/sun/nio/cs…

JavaMailで送信する際のヘッダ設定の注意点

iso-2022-jpでメールを送信する際に、日本語が含まれるとquoted-printableで送信される*1。quoted-printableで送信させたくない場合には、明示的にヘッダにContent-Transfer-Encoding:7bitを指定する必要がある。 その場合、MimeMessage#setHeaderでヘッダを…

JavaDocを活用してみたい

JavaDocをHTML化するのではなく、PDF化するカスタムDocletを探してみました。JavaDocPDF Tips*1を参照するとAurigaDoclet がよさそう。早速設定して使ってみましたが、Javaのコードに記述されているコメントのHTMLタグがちゃんと閉じられていないとPDFを生成…

Windows-31J とShift_JIS

ちょっと調べてみました。IEとFirefoxは、Windows-31Jのエイリアスとして表記しておきます。FireFoxはソースコードをすこし検索してみただけなので、そのほかにどこか設定している場所があるかもしれないため実際の挙動は異なる可能性があります。 参考情報 …

JNLPのほかの実装を探してみた

JavaWebStartのクライアントでSunの実装以外に存在しているかチェックしてみましたが、現在活動中のプロジェクトはないようです。 http://openjnlp.nanode.org/ Netx - NETwork eXecute

JConsoleにてIIOP経由でプロセスにアクセスした際に起きたエラー

WebLogicのマニュアルを参照するとJConsoleからWebLogicのプロセスにアクセスする際にIIOP経由で接続する方法が記述されている。もちろん普通の方法(プロセスIDをチェックして)でもアクセスできるのであるが、ノードマネージャ経由でWebLogicを起動した場合…

JRockitのSystem.gcってデフォルトでは、FullGC相当のものではないようです

すべてのSystem.gcを無効にするオプションはよく知られていますが、JRockitでは、FullGC相当の動きはデフォルトではしないようです。ただ、この場合は、運用側で、不要なオブジェクトを破棄するような運用するためにこのメソッドを利用している場合には問題…

SysLogAppenderをうまく拡張できない。。。

個人的にはSysLogに日本語を記録する気はないのだけど…SysLogAppenderは、単純にString#getBytes()でバイト列を取得するのでプラットフォームから得られるエンコーディング指定に従ったバイト配列となり、それが送信される。この場合、クライアント側がWindo…

JDK 1.5.0のUpdateバージョンで変わったところその5

Update7から、x-windows-iso2022jpが利用できるようになった Java6からのバックポート。 id:nagasama:20061008:1160293570でも記述しているが、下記のプロパティを実行時に指定するとISO-2022-JPのエイリアスが変更され今まで化けていた(挙動としては正しい…

AdaptiveSizePolicyを利用するとOld領域へ移動する閾値の計算方法が変わる

パラレルGCを利用すると、デフォルトでAdaptiveSizePolicyが有効になりますが、シリアルGCで動作するOld領域へ移動するためにNew領域に留まる閾値の計算方法が異なるようです。ソースコードを参照すると、マイナーGCとメジャーGCのコストを比較して、マイナ…

JDK 1.5.0のUpdateバージョンで変わったところその4

Update6からAggressiveOptsが利用できるようになった AggressiveOptsは、Java6から採用される機能を利用するためのオプションのようです。なのでJava6では有効にしても何も変わりません。また下記の情報によると、このオプションは5.0では実験的だそうです。…

JDK 1.5.0のUpdateバージョンで変わったところその3

Update6からOld領域でもパラレルGCが利用できるようになった Update6から、XX:+UseParallelOldGCを指定することでOld領域でもパラレルGCが利用できるようになりました。ただ、Update6時点では、試験的な扱いとSunのエンジニアから聞いたような記憶があります…

コンカレントGCでのNew領域の扱い

コンカレントGCは、Old領域にてアプリケーションを止めてしまうStop The WorldのGCではなく、アプリケーションを実行しつつGCを実行できるGCのタイプである。 コンカレントGCを利用した場合の設定が記述されているサイトをチェックすると、New領域はそれほど…

JDK 1.5.0のUpdateバージョンで変わったところその2

Update 8から JDK1.6.0用で使われているハッシュ値も利用できるようになった UseNewHashFunctionオプションを有効にすることで、新しいハッシュ値が利用できるようになるらしい java.util.HashMapの実装の変化 - 昼間のメモ http://edocs.beasys.co.jp/e-doc…

JDK 1.5.0のUpdateバージョンで変わったところその1

Update6からMaxTenuringThresholdの値が31から15になっている シリアルGCの発想して、New領域、Old領域、スキャベンジGCとフルGC、短命オブジェクトと長命オブジェクトというのがあります。 New領域は、オブジェクトがはじめに配置される領域です。Old領域は…

HPのJavaVMの問題だけど

まあ、この問題はSun製のJavaVMではよく見かける問題であるが、HPの場合は、カーネルの設定にも引っかかっていることもあるということだね。 Bug ID: JDK-4697804 VM should minimize need for calls to vm_exit_out_of_memory() http://publib.boulder.ibm.…

オプションチェック

AppendRatio http://otndnld.oracle.co.jp/document/products/as10g/101320/doc_cd/core.1013/B31836-01/top_issues.htm#969787 Bug ID: JDK-4985566 Equal priority threads not timslicing properly in Linux ヒープダンプ関連 HP Support document - HP S…

Javaチューニング情報

ちょっと探してみました。 JavaOne 2007の情報 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle http://www.makeitfly.co.uk/Presentations/java_mt_performance.pdf Java HotSpot VM Options Java SE HotSpot at a Gl…

パソリとApplet

Edyを利用してNetで買い物するときにAppletが起動しますが、EdyLibrary.dllを経由してパソリと通信しているんですね。通常Appletは、JNIを呼ぶことはできないんですがsigned Applet化することでJNIを利用することができるようです。長い間勘違いしていました…

JavaOne 2007

速報!2007 JavaOne Conference:特集|gihyo.jp … 技術評論社 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle

最近のキーワード

個人的なものなんで、昔からあるキーワードもあります。 Consumer JRE chet: Consumer JRE: Leaner, Meaner Java Blog | Oracle Community Java Kernel JavaFX OpenJFX https://openjfx.dev.java.net/ Groovy OpenJDK http://openjdk.java.net/ NetBeans 6.0…

6.0 m9ダウンロード中

NetBeansもいよいよ6.0もJavaOneに向けてm9がリリースされていますね。NetBeans5ぐらいから使えるツールになってきたので、EclipseもいいけどNetBeansも好きという人も増えてくるのではないでしょうか? といってもJavaOneにはもう行くことないだろうなぁ。…

資格

Sun Certified Business Component Developer for the Java Platform, Enterprise Edition 5 JavaEE用にアップデートしていますな。以前は、Sunからベータテストの連絡があったのに。。。( 一一)JavaSE 5(310-055)の資格とJavaEE5の資格を取る必要があります…

Harmony PJのJavaVMを試してみる

最近全然話に上がってこなかったのでちょっと前にダウンロードしたVMを動かしてみました。Server向けかClient向けかどちらに注力しているのか定かではないのですが(すみません)、実装のなかでSwing回りがいちばん厄介ではないかなと思い、SunのJavaVMの1.5.0…

MSJavaVM

ここによればMicrosoft Expression、下記のようにVistaでは含まれないことがわかります。 MSJVM は、Windows XP SP1a、Windows XP SP2、Windows Server™ 2003、またはそれ以降のマイクロソフト製ソフトウェアには含まれません。

Vistaで動くJavaVM

ここによるとchet: Java on Vista: Yes, it Works Blog | Oracle Community JavaSE6では対応済み JavaSE5ではUpdate11で対応 1.4.2では対応予定 でもVistaではJavaSE6をお勧め。 ちなみにリリースノートによると制限があるので注意しましょう。ちゃんと確認…

JavaVMにほしいもの

JavaVMのHotspotの動作の情報を再利用 たとえばバッチ処理とかで以前のHotspotコンパイルによる最適化情報を起動時にロードして最適化したのちに動作する。一見できそうだけどイロイロと技術的な問題がありそうかな。 安定性 うーんこれは安定すればするほど…

1.4.2のx64向け JavaVM

Frequently Asked Questions About the Java HotSpot VMを見ていたら、Sunが1.4.2でWindows向けx64用のJavaVMを公開しているように見える。しかし、Supported System Configurations J2SE 1.4.2 and Java for Business 1.4.2を見てもサポートしているプラッ…

JavaMailで文字化けがしなくなる?

Java6から実行時に次のようなプロパティを設定するとISO-2022-JPのエイリアスが変更されx-windows-iso2022jpの実装を利用している状態になるようだ。これを利用すると今まで化けていた(ある意味正しいのだが)①などWindows-31Jで定義されている文字が化けな…

FullGCの理由にAdaptive Size Policy

どうやら、パラレルGC(デフォルトでAdaptive Size PolicyがOn)を利用している際にold領域が不足するとFullGCを強制するみたい(PSAdaptiveSizePolicy::should_full_GC)。当たり前のことだが、FullGCが発生することを判断するアルゴリズムが異なるということは…