Javaクラスローダー
OSGiアライアンスは、現在および将来において、広く利用されているJava ME、Java SE、Jakarta EEの各VMでJAR地獄を解決するべく、モジュール方式のフレームワークを策定している(1998年のJSR 8から始まっている)。これは、JARマニフェスト(英語版)中に書かれたメタデータを使い、JARファイル(バンドルと呼ばれる)をパッケージ単位で操作するものである。バンドルはパッケージをエクスポートしたりインポートしたり、パッケージをプライベートに保っておいたりすることができ、これにより基本的なモジュール化と、バージョン付けされた依存関係管理が行える。
JAR地獄に対する改善策として、2005年にJava Community ProcessによるJSR 277の策定が始まり、その結果として「Java Module System」が定義された。これは、配布フォーマット、モジュールのバージョン体系、共通モジュールのリポジトリ(目的は.NET FrameworkのGlobal Assembly Cacheに類似)をJavaに導入することを目的としていたが、バージョニングの問題などで論争が起き、2008年12月、SunはJSR 277を保留とすることを発表した。その後、後継となるJSR 376のJavaプラットフォームモジュールシステム(英語版)としてJava 9で正式に導入された。