在 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 组件或其他组件会失败。