在使用J2SE 6.0的Mac OS上启动Eclipse MAT时,JVM终止

时间:2008-10-29 04:33:53

标签: java macos jvm memoryanalyzer

我最近发现了非常有用的Eclipse Memory Analysis Tool,它可以快速找到Java应用程序中的内存泄漏。不幸的是,在将JDK切换到1.6(在Mac OS 10.5下)之后,JVM会在启动时立即终止。所有出现的都是一个对话框,说明“JVM已终止”,退出代码= -1。

其他人遇到过这个吗?也许有一种方法可以将其配置为使用不同的JDK? (例如1.5:显示它与之兼容)

2 个答案:

答案 0 :(得分:3)

要将Eclipse配置为使用其他VM,请使用以下命令行:

eclipse -vm <path to java>

您还可以在Eclipse.app/Contents/Info.plist中指定路径。有一个这样的部分:

<!-- to use a specific Java version (instead of the platform's default) uncomment one of the following options:
    <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Commands/java</string>
    <string>-vm</string><string>/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java</string>
-->

对于Memory Analyzer,您可以在MemoryAnalyzer.app/Contents下找到Info.plist文件。

答案 1 :(得分:1)

Mac的官方Java 6只有64位数据模型。不幸的是,Eclipse在Mac上使用Carbon,它只有32位。简而言之,使用官方Java 6发行版不可能运行Eclipse。

对此的经典解决方案是将默认VM设置为Java 5,然后选择Java 6作为Eclipse中的JRE / JDK。

如果你真的需要用Java 6运行Eclipse,那么你可以看看SoyLatte这是OpenJDK的一个版本,它支持32位和64位模式。