所解释的问题似乎很常见,并且已经提出了不同的解决方案,其中许多解决方案都有效。 One example of this discussion can be found here。Eclipse JRE 7与JRE 7在启动时会导致问题
我的问题是更多关于为什么而不是如何。
我们一直在摔跤这个问题,我们自己也发现,如果我们使用javaw.exe启动eclipse,则会发生问题,但如果我们使用jvm.dll调用Eclipse,则问题不会出现。即使在这两种情况下,eclipse.ini
保持不变。
为了解释我的情况,我将使用从命令行启动eclipse.exe
以及一个-vm
参数的示例。对于低于基准为eclipse.ini
,我们使用:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx1280m
-XX:MaxPermSize=512m
-Dderby.stream.error.field=java.lang.System.err
你可以看到,请求分配内存是相当多的两个堆(1280米)和PermGen的(512米)。如果您无法重现该问题,则可以尝试增加内存,直到发生错误。
还有,你可以使用三种不同的命令行:
eclipse.exe -vm ..\jre\bin\javaw.exe
eclipse.exe -vm ..\jre\bin
eclipse.exe -vm ..\jre\bin\client\jvm.dll
只有第一一个导致错误(javaw.exe的)。剩下的两个选项成功启动eclipse。在eclipse.ini中减少内存需求也明显地解决了这个问题。
所以我的问题是,为什么javaw.exe失败时,其他两个命令行工作?选择这些不同的路径有什么区别?一个人是否比其他人强制执行参数?
环境:Eclipse的:3.8-win32的,JRE:7u7-Win32中,Windows 7的64位
你有更多然后1个Java版本吗? – SomeJavaGuy
你真的需要给它那么多的RAM吗?我在一些相当不错的项目上工作,我从来没有碰到Eclipse的JVM RAM(我也在JRE7上运行Juno)...... –
@KevinEsche是的,但我认为它不应该是一个因为我自己提供了虚拟路径。 –