如何在MacOS上获得干净的Java虚拟机?

如何在MacOS上获得干净的Java虚拟机?,java,macos,jaxp,Java,Macos,Jaxp,在MacOS上(至少在SnowLeopard上),java命令无条件地向类路径添加一个额外的jar: /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/.compatibility/14compatibility.jar 这个jar包含一个apachexerces+Xalan版本,未命名。对于那些试图显式使用这些库的其他版本的应用程序来说,这可能会导致混乱的结果,特别是在servlet容器中的webapps中 我试图

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

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

这个jar包含一个apachexerces+Xalan版本,未命名。对于那些试图显式使用这些库的其他版本的应用程序来说,这可能会导致混乱的结果,特别是在servlet容器中的webapps中

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


除了删除那个JAR文件的明显暴力行为之外,还有人想出了其他方法吗?在一个博客上推荐它,但我担心没有它,苹果的某些组件或其他组件会失败。

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

重命名14 compatibility.jar后,我没有遇到任何问题。也许你可以试试。如果有什么东西坏得很厉害,你可以把它移回原来的位置。

这很公平,但是没有罐子可以预先放好。我想扔掉这些东西,而不仅仅是用其他版本来取代它。