クラスパス地獄とは何ですか?それはJavaにとって本当に問題でしたか?
5 に答える
「クラスパス地獄」とは、JavaアプリのクラスパスをCLASSPATH環境変数でしか設定できなかった時代のことだと思います。これにより、多くのアプリケーションでグローバルシステム構成の変更(OSごとに異なる)、アプリケーション間のバージョンの競合、および一般的な混乱が発生しました。
これはもう少し具体的な例です:
2 つのライブラリ (またはライブラリとアプリケーション) が同じ 3 番目のライブラリの異なるバージョンを必要とする場合。3 番目のライブラリの両方のバージョンが同じクラス名を使用している場合、3 番目のライブラリの両方のバージョンを同じクラスローダでロードする方法はありません。
その他の例については、 http://en.wikipedia.org/wiki/Java_Classloader#JAR_hellで略奪してください。
http://mindprod.com/jgloss/classpath.htmlとhttp://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.htmlには良いものがたくさんあります
-cpを使用して自分で設定していない場合にのみ、クラスパスに問題がありました。サードパーティのソフトウェアがクラスパスをどのように設定するかを理解しようとすると、面倒な場合があります。