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

时间:2009-11-13 20:33:30

标签: java macos jaxp

在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文件的暴力之外,是否有人制定了其他一些食谱?它建议在一个博客上,但我担心一些苹果组件或其他组件会在没有它的情况下失败。

2 个答案:

答案 0 :(得分:1)

我相信这里的终极王牌是-Xbootclasspath / p:foo.jar。这使您可以将.jar添加到引导类加载器中。这应该使它优先于我能想象的任何东西。例如,你可以用这种方式替换java.lang.String。

答案 1 :(得分:1)

重命名14compatibility.jar后我没有遇到任何问题。也许你可以尝试这样做。如果有任何可怕的破坏,你可以将它移回原来的位置。