如何在MacOS上获得干净的Java VM?

Asked
Viewd108

0

在MacOS上(至少在SnowLeopard上),java命令无条件地向类路径中添加了一个额外的jar:

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

此jar包含未重命名的Apache Xerces + Xalan版本。对于试图显式使用这些库的其他版本的应用程序,可能会导致混乱的结果,尤其是在servlet容器中的webapps中。

我试图通过使用MacPorts中的OpenJDK来避免这种情况,但是MacPorts构建为此失败。

除了删除该JAR文件的明显暴力行为之外,还有谁制定出其他解决方案?推荐在一个博客上,但我担心如果没有它,某些Apple组件或其他组件将失败。

2 个答案

1

重命名14compatibility.jar之后,我没有任何问题。也许您可以尝试这样做。如果有什么可怕的问题,可以将其移回原来的位置。

1

我相信这里的最终王牌是-Xbootclasspath / p:foo.jar。这使您可以在引导类加载器之前添加.jar。这应该使其优先于我能想象的任何东西。例如,您可以通过这种方式替换java.lang.String。

  • 足够公平,但是没有可以装的罐子。我想摆脱这些东西,而不仅仅是将其替换为其他版本。

    bmarguliesNovember 13, 2009 20:40