BT

Eclipse と Java 6u21 の問題

| 作者: Alex Blewitt フォローする 4 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2010年8月4日. 推定読書時間: 2 分 |

原文(投稿日:2010/07/21)へのリンク

Oracleが最近リリースした Java 6 update 21 には、 java.dllを作成する際に、小さな,しかし無害な変更 があった。不幸にも、この変更は、 Eclipseの起動に影響を及ぼし、かつてSunの元で開発された NetBeansではなく、 Eclipseに問題をもたらした。

変更は、dllの作成の際に、COMPANY_NAME=Sun Microsystems, Inc.COMPANY_NAME=Oracle Corporation に置き換えたのである。不幸にも、 Eclipseは、DLLの名前を使って、非標準の-XX:MaxPermSize を追加するのが安全かどうかを判定している。そのフラッグが存在して、サポートされていないと、あるJVMは、Eclipse のスタートアップ ファイル (eclipse.ini)に、-XX:MaxPermSizeを書かないで、起動に失敗するので、新しい引数、 --launcher.XXMaxPermSize 256m が許され、そしてもし、 Windowsで実行可能なランチャーがSunのVMを検知したら、-XX:MaxPermSize=256m を自動的に追加する。

この自動検知は、VMではなく、Cで書かれたランチャー部分(eclipse.exe) で行っている-VMは、一旦走れば、そのプロパティを変更することはできない。これを早い(そして臆せず言えば、汚い)方法でやるために、eclipse.exe ランチャーは、そのフラッグを追加できるか,判断するのに 文字列 Sun Microsystemsを探す。

こうして、この変更が Eclipseランチャーのプロセスを破綻させた;そしてOutOfMemoryErrorを起動時に起こす。これは、即座に Eclipseに報告され 、更に、Oracleにエスカレートされ修正された

このブランドの変更は、Oracleの権利だが(リリースノートに載せるにも値しないものだったろう)、それがEclipse に影響した-現行のバージョン3.6ばかりでなく、 3.5, 3.4 あるいは 3.3をベースにしたIDEやRCPにもである。( Eclipse側で)これを修正するには、修正の順序を調整する必要がある;最新版に当てるEclipseランチャー用のパッチ がある。しかし互換性を保証するためには、最低でもEclipse 3.5 そしてたぶん3.4にも適用できるように、作り直す必要があるかもしれない。

Oracleが、この問題に早く対処したことは、誉められていい。彼らはこの問題を解決する必要はなかったが、数日で直した。その後、次のJavaのビルドにも修正が入る。( 6u21 が再ビルドされるのか 6u22になるのかは、わからない。)それまでは、 Eclipse で問題を経験し、最近 Java 6u21をインストールした(あるいは,自動的にアップデートした)なら、 Java 6u20にダウングレードするか FAQに従って、PermGenサイズを再有効化すればよい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT