JAR地獄とは? わかりやすく解説

JAR地獄

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/11 16:17 UTC 版)

Javaクラスローダー」の記事における「JAR地獄」の解説

DLL地獄似た言葉としてJAR地獄という言葉があるが、これはクラスロード思ったとおり行われない状況全般指して使われる。 JAR地獄の発生する状況としては次の3つがある。 一つ目は、Javaアプリケーション開発配置の際に、たまたま同じライブラリ2つバージョン同時に利用可能になってしまった場合である。この場合処理系エラー発生させず、単純にどちらか一方ライブラリからのみクラスロードする使用するライブラリリスト新しライブラリ追加置き換えではなく)した場合アプリケーションは古いライブラリ使っているのと同じ振る舞いになるものと考えられる問題発生するもう一つ状況は、2つライブラリAとB(または、アプリケーションAとそれが使っているライブラリB)が、別のライブラリCの異なるバージョンそれぞれ要求している場合である。 ライブラリCの各バージョンクラス名変わらないなら、ライブラリCの各バージョン一つのクラスローダーで同時にロードする方法存在しない。 JAR地獄で最も複雑な問題は、クラスローダーの複雑性によって発生するJavaプログラムでは単一の「フラットな」クラスローダーだけでなく、ネストした、協調して動作する複数の(場合によっては非常に多くの)クラスローダーを使用できる。別々のクラスローダーによってロードされクラス複雑に相互作用するが、開発者がその機序十分に理解してない場合不可解なエラーバグ発生するOSGiアライアンスは、現在および将来において、広く利用されているJava MEJava SEJakarta EEの各VMでJAR地獄を解決するべく、モジュール方式フレームワーク策定している(1998年JSR 8から始まっている)。これは、JARマニフェスト英語版中に書かれメタデータ使いJARファイルバンドル呼ばれる)をパッケージ単位操作するのであるバンドルパッケージエクスポートしたりインポートしたり、パッケージプライベートに保っておいたりすることができ、これにより基本的なモジュール化と、バージョン付けされた依存関係管理が行える。 JAR地獄に対す改善策として、2005年Java Community ProcessによるJSR 277策定始まりその結果としてJava Module System定義された。これは、配布フォーマットモジュールバージョン体系、共通モジュールリポジトリ目的.NET FrameworkGlobal Assembly Cache類似)をJava導入することを目的としていたが、2008年12月SunJSR 277保留とすることを発表した

※この「JAR地獄」の解説は、「Javaクラスローダー」の解説の一部です。
「JAR地獄」を含む「Javaクラスローダー」の記事については、「Javaクラスローダー」の概要を参照ください。

ウィキペディア小見出し辞書の「JAR地獄」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「JAR地獄」の関連用語

JAR地獄のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



JAR地獄のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのJavaクラスローダー (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS