0

MacOS(少なくともSnowLeopard)では、javaコマンドは無条件にクラスパスに追加のjarを追加します。

/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/.compatibility/14compatibility.jar。

このjarには、名前が変更されていないバージョンのApache Xerces+Xalanが含まれています。これにより、これらのライブラリの他のバージョンを明示的に使用しようとしているアプリケーション、特にサーブレットコンテナ内のWebアプリケーションで混乱した結果が生じる可能性があります。

MacPortsのOpenJDKを使用してこれを回避しようとしましたが、MacPortsのビルドに失敗しました。

そのJARファイルを削除するという明らかな暴力以外に、他のレシピを作成した人はいますか?あるブログで推奨されていますが、それがないとAppleコンポーネントの一部が失敗するのではないかと心配しています。

4

2 に答える 2

1

14compatibility.jar の名前を変更した後、問題は発生していません。おそらく、あなたはそれをやってみることができます。何かがひどく壊れた場合は、元の場所に戻すことができます。

于 2009-11-13T20:39:49.377 に答える
1

ここでの究極の切り札は -Xbootclasspath/p:foo.jar だと思います。これにより、.jar をブートストラップ クラスローダーの前に追加できます。これにより、私が想像できるものよりも優先されるはずです。たとえば、この方法で java.lang.String を置き換えることができます。

于 2009-11-13T20:37:08.077 に答える