【发布时间】:2012-03-08 01:03:38
【问题描述】:
ext-Myself 和两个同事一直在从事 GWT 项目并在 eclipse 中编码。该项目正在发展,我们正在引进几位新的开发人员来提供帮助。我的任务是在他们开始工作之前设置他们的工作站。我们当前的系统都按照基本 GWT 设置指南 (http://code.google.com/webtoolkit/usingeclipse.html) 开箱即用
在我的工作系统上,我没有更改 eclipse 为内存大小设置的任何默认值。
新系统将运行简单的启动项目,所以我知道我已经设置了 GWT。当我导入我们当前的代码库时,我可以毫无问题地在本地运行该站点。当我尝试运行我们必须构建项目并将其推送到我们的开发服务器的 ant 脚本时,新系统会抱怨:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
在新系统上,我已将 eclipse.ini 文件修改为并设置 -Xmx1024M,并在 Window>Preferences>Java>Installed JREs 下添加了 -Xmx1024M,但都没有解决问题。 (此处显示:http://dinu.blog.com/2010/06/02/out-of-memory/)
我尝试过 32 位和 64 位版本的 eclipse,我什至尝试将我已知的工作 eclipse 文件夹复制到新系统上,但没有任何运气。有人有什么想法吗?
【问题讨论】:
-
为什么必须使用 Ant 脚本来构建项目? Eclipse 已经为您编译了 Java 类。您只需要获取 Eclipse 生成编译类的目录并将其 jar 即可。
-
我们正在使用 ant 脚本构建一个战争,然后将其部署到运行 tomcat 的服务器上。我们还使用 ant 脚本和构建服务器在夜间自动构建项目。
-
只是为了构建 WAR 内存不足?这很奇怪......你的 Ant 脚本不是在尝试编译类(再次)吗?
-
它确实将 java 源代码编译成字节码,然后将字节码编译成 JavaScript(GWT 称之为“生产模式”),然后从生产模式进入战争。这个问题非常奇怪。现在的项目根本不应该占用大量内存。
-
正如我所说,您的 Ant 脚本不必编译 Java 类,我认为这会消耗所有内存(我知道为什么,但我正在为之工作的项目也是如此,看起来就像 Eclipse 问题...),因为如果您设置了“自动构建”选项,Eclipse 已经编译类。您只需要使用已经生成的 .class 并跳过此步骤。
标签: java eclipse gwt heap-memory gxt