Eclipse出现java was started but returned exit code 1报错并退出

Eclipse出现java was started but returned exit code 1报错并退出

最近在使用Eclipse时发现无法启动或者启动后经常出现崩溃退出的情况,提示的错误信息都是“java was started but returned exit code 1”,下载安装了最新版的Eclipse后还是没有解决问题。无奈之下只好百度之,翻了好几页都没有发现有用的信息,直接换到Google.com,终于在Eclipse Forum找到了一个靠谱的答案(网址是http://www.eclipse.org/forums/index.php?t=tree&goto=547573&#page_top),回答答案是“Eclipse is using the system default JRE that it finds in the windows system folders. You should point it to a JDK installation using eclipse.ini (as described here: http://wiki.eclipse.org/Eclipse.ini )”,大意是Eclipse启动的时候默认会使用从windows系统目录下找到的JRE作为默认的环境,由于我之前升级安装了一下JDK,所以系统目录下的JRE和实际的Java安装是不匹配的,因此会出现运行Eclipse时报错的情况。
解决方案:
根据eclipse.ini文件的说明(http://wiki.eclipse.org/Eclipse.ini),该文件提供指定运行eclipse的JVM功能,需要在eclipse.ini中加入JVM的路径说明。语法很简单:

-vm
C:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe

eclipse.ini说明文档中特别提到使用-vm参数的注意事项:
(1)The -vm option and its value (the path) must be on separate lines.(-vm选项和其对应的javaw.exe的路径必须各占一行,这应该是参数解析的格式要求)
(2)The value must be the full absolute path to the Java executable, not just to the Java home directory.(指定的虚拟机路径必须是指向可执行Java程序的完整绝对路径,不能只指定到Java_HOME目录。这个好理解,要指定JVM的话肯定要指定到具体的可执行文件去)
(3)The -vm option must occur before the -vmargs option, since everything after -vmargs is passed directly to the JVM.(-vm选项必须放在-vmargs选项前,这是因为-vmargs选项后的值都是作为JVM的参数传给虚拟机的,如果-vm放在-vmargs之后就没有意义了。而-vmargs选项中一般可指定-Xms和-Xmx这两个内存参数)

<think>嗯,用户遇到了一个Java应用程序启动错误,具体是Memory Analyzer(MAT)在打开内存快照时返回了退出代码,显示了一堆路径和参数。我需要先理解错误信息中的关键点。 首先,错误信息中的路径可能存在拼写错误,比如“C:\Program FileslCommon FileslOracleWavaljavapathljavaw.exe”,这里的“l”应该是反斜杠“\”,可能用户复制时格式出了问题。此外,参数部分如“Xmx102400m”是否正确,是否应该带有空格,比如“-Xmx102400m”。还有,检查MAT的启动配置,尤其是JVM参数设置是否正确,内存分配是否过大导致无法启动。 另外,用户提到的jar文件路径中的斜杠和空格是否正确,比如“E:\MemoryAnalyzer...\mat\\plugins/orgeclipse.equinox.launcher 1.5.0.v20180512-1130.jar”,这里可能路径中的空格没有被正确转义,或者使用了正斜杠和反斜杠混合导致系统无法识别。同时,检查Java环境变量是否正确,特别是当MAT指定了特定的Java路径时,是否存在版本不兼容的问题。 可能的解决方案包括修正路径中的错误符号,调整JVM内存参数,确保Java版本兼容,或者重新配置MAT的启动参数。此外,用户可能需要以管理员权限运行MAT,或者检查系统环境变量是否设置正确。如果问题依旧,建议用户提供更准确的错误日志或截图,以便进一步诊断。</think>从你提供的错误信息来看,问题主要出在**Java虚拟机(JVM)参数配置**和**路径格式错误**上。以下是逐步分析: --- ### **1. 关键错误点分析** #### (1) **JVM参数语法错误** - 错误片段:`Xmx102400m` - **问题**:缺少参数前缀短横线 `-`,正确写法应为 `-Xmx102400m`。 - **解释**:`-Xmx` 是设置JVM最大堆内存的参数,例如 `-Xmx4G` 表示分配4GB内存。你的参数未加 `-`,导致JVM无法识别。 #### (2) **路径格式错误** - 错误片段:`C:\Program FileslCommon FileslOracleWavaljavapathljavaw.exe` - **问题**:路径分隔符 `\` 被错误写成 `l`(字母L的小写)。 - **修正后**:`C:\Program Files\Common Files\Oracle\Java\javapath\javaw.exe` - **可能原因**:配置文件或脚本中的路径被意外修改或复制时出错。 #### (3) **JAR文件路径问题** - 错误片段:`E:\MemoryAnalyzer...\mat\\plugins/orgeclipse.equinox.launcher 1.5.0.v20180512-1130.jar` - **问题**: - 路径中存在正斜杠 `/` 和反斜杠 `\` 混用。 - 文件名 `orgeclipse.equinox.launcher` 中间缺少 `.`,应为 `org.eclipse.equinox.launcher`。 - **修正后**:`E:\MemoryAnalyzer...\mat\plugins\org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar` --- ### **2. 解决方案** #### (1) **修正JVM参数** - 找到MAT的启动配置文件(如 `MemoryAnalyzer.ini`),检查以下行: ```ini -vmargs -Xmx102400m ``` 确保参数前有 `-`。 #### (2) **修复路径格式** - 检查所有路径中的 `l` 是否应为 `\`,例如: ```ini -vm C:\Program Files\Common Files\Oracle\Java\javapath\javaw.exe ``` #### (3) **检查JAR文件路径** - 确保路径使用统一的反斜杠 `\`,验证文件名是否正确: ```ini -startup E:\MemoryAnalyzer...\mat\plugins\org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar ``` #### (4) **其他建议** - **降低内存分配**:`-Xmx102400m` 表示分配约100GB内存,远超过普通电脑配置。建议调整为合理值(如 `-Xmx4G`)。 - **检查Java版本**:确保安装的Java版本与MAT兼容(MAT通常需要Java 8或11)。 - **以管理员身份运行**:权限问题可能导致路径访问失败。 --- ### **3. 操作示例** 以 `MemoryAnalyzer.ini` 文件为例,修正后内容应类似: ```ini -startup plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.700.v20180518-1200 -vm C:\Program Files\Java\jdk-11.0.12\bin\javaw.exe -vmargs -Xmx4G ``` --- ### **4. 如果问题仍未解决** 1. 提供完整的错误日志(注意隐藏敏感路径)。 2. 尝试下载最新版MAT(旧版本可能存在兼容性问题)。 3. 使用命令行手动启动MAT,观察报错细节: ```bash "E:\MAT\MemoryAnalyzer.exe" -consoleLog -debug ``` 希望以上步骤能帮助你解决问题!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值