我的基于eclipse的产品eclipse.ini具有以下入口以容纳2GB的堆内存:
-startup
plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
-application xx.yy.zz.mm.application.application
-showSplash splash.bmp
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms512m
-Xmx2048m
从exe启动时无效,因为Xmx的ini条目被忽略。
解决方法:我现在正在使用以下条目的批处理文件:
java -Dosgi.requiredJavaVersion=1.8 -Xms256m -Xmx2048m -Xss4m -jar plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar -application xx.yy.zz.mm.application.application -showSplash splash.bmp
工作正常,但解决方案看起来很难看,因为用户必须不是从exe文件而是从批处理文件启动应用程序。 任何信息都会非常有用。 我使用的是windows7 + 64bit JRE + eclipse Neon
奇怪的是,虽然Xmx agrument在批处理文件中工作正常,但为什么不能使用.exe + ini! 我不知道我们是否可以调试启动器或为什么ini文件忽略了2048m的内存。
答案 0 :(得分:1)
我刚用Windows上的Oxygen,JDK 1.8.0.9解决了这个问题:
-Xmx3000m没有用。
某处我建议尝试-XX:MaxPermSize = 3000m
这没用。
here州: 以-X开头的选项是特定于实现的,可能不适用于所有VM。 MaxPermSize是某些非Oracle JVM无法理解的非标准选项, 改为使用Eclipse启动选项:
- launcher.XXMaxPermSize 3000米
这将使Eclipse启动器将MaxPermSize选项传递给任何支持它的JVM。
答案 1 :(得分:0)
ini文件非常脆弱,对空白敏感,并在出现任何错误时默默忽略。例如在“启动”之前你错过了' - '(可能只是一个C& P错误!?)。
无论如何,我建议从干净的/新的/复制的.ini开始。然后只需添加一个新条目。确保没有其他任何事情被打破。