“无法创buildJava虚拟机”造成的病毒或机器被搞乱了?

在这里输入图像说明

我使用的是双核XP机器 ,安装了4GB的内存(但由于32位的事实,操作系统只报告2.5GB )。 我正在使用最新的Eclipse (编辑,构build和运行)和Ant (另一种构build和运行方式)主动修改旧的JAVA应用程序至less一个月。 在Eclipse运行configuration和build.xml文件中,我们有以下JVM参数: -Xmx1024M -Xms1024M -Xmn384M 。 我们一直在使用这种configuration多年。

我也有一个batch file,用这个参数启动Eclipse: -vmargs -Xmx768M 。 这个batch file已经在我身边好几年了。 (现在我改变了修改eclipse.ini做configuration。)

前天,我发现使用Ant来构build和运行我的应用程序(我在修改过程中经常构build和运行)要慢得多。 我回家之前就重新启动了机器。 那天晚上,我VPN到我的机器完成一些修改(我是一个非常好的员工),发现更慢。 第二天早上,当我用Ant运行我们的应用程序时,开始发生“ 无法使Java虚拟机瘫痪 ”。

我重新启动了我的机器。 然后我无法启动我的Eclipse与同样的错误。 我必须改变vmargs声称只有512MB的内存来启动Eclipse。 Ant的build立时间从约20秒增加到约6分钟。 我必须减lessJVM的最大内存

 -Xmx512M -Xms512M 

在Eclipse中运行configuration和Ant build.xml以避免错误。

然后我卸载我的1.6u24 jdk / jre并安装了1.6u25。 我重新安装了Eclipse。 用趋势科技扫描整个机器,什么都没发现。

我通常连接的另一台机器做了一些testing,结果相似(较慢)。 所有其他机器,包括我的同事机器和笔记本电脑,使用相同的应用程序和工具都可以正常工作。

如果我使用Ant来构build和运行它,构build过程和启动过程会非常缓慢。 我已经创build了两个batch file来编译和启动我的应用程序。 他们正常工作。 用Eclipse编译时,它正常工作。 但是现在我不能要求JVM在所有情况下为我的应用程序声明1024MB

我的机器上的所有其他活动似乎很正常。 VisualStudio和C#应用程序照常工作。 由于硬盘故障,我的机器几个星期前重build。 所以没有太多无用的东西来放慢我的机器。

任何人都可以帮我弄清楚为什么我的机器上的JVM改变了它的行为? 我希望它不是由病毒引起的。 在打电话给我重build我的机器之前,您知道我可以尝试的任何东西吗?

谢谢,

Solutions Collecting From Web of "“无法创buildJava虚拟机”造成的病毒或机器被搞乱了?"

虽然您的配置可能没有改变,但这并不意味着可用内存的数量没有改变。 内存由操作系统中的所有程序使用,所以如果另一个程序的内存使用量稍大,则可能无法预先分配您指定的1GB内存(来自命令行参数)必须可用于启动JVM。

另一种可能是某个新程序被安装/运行,并且正在逃避你所需要的内存。 病毒扫描可能已经被安装/更新,并且它本身可以是相当大的内存(取决于产品)。

最后,你提到机器被重建了。 您可能想要验证(通过BIOS),您实际上拥有与重建之前相同数量的物理内存。 重建机器有一个有趣的方式,从记忆中拔出插槽(也许还有更多的重建正在进行而不是眼前)。 这个问题可能很简单,因为没有足够的内存来预先分配给JVM,因为你的启动较少。

如果所有这些检查出来,检查不明确的东西。 如果您重新安装了旧的或不同的操作系统,则可能不支持访问尽可能多的内存。 当某人从64位安装恢复到32位安装时,通常会发生这种情况。

使用Microsoft的任务管理器或进程资源管理器(http://technet.microsoft.com/en-us/sysinternals/bb896653)并检查内存资源。 如果你不得不减少你正在使用的内存量,那很有可能是因为别的东西把它占用了。 另外,我发现2.5GB的容量有点奇怪,因为我认为容量更像3.25GB(主要是因为这是我安装了4GB的Windows XP)。

另外,每次看到这个错误信息都是因为没有足够的物理内存可以抓取。 为了在得到这个异常之后运行一些东西,我不得不关闭过去的程序。

(我会把这个评论,但还没有评分:/)

你能在任务管理器中看到什么奇怪的东西吗? CPU利用率? 事实上,你不能像以前那样分配尽可能多的内存,但是在我的一台开发机器上升级杀毒软件之后,我看到了类似的编译时间减少。

如果您在编译期间禁用防病毒,会发生什么情况?

这听起来更像是一个配置问题,而不是病毒,特别是考虑到它最近被重建。 你没有提到你是使用32位还是64位的Java。 这可能有助于了解哪一个在失败时试图运行。

其他要检查的内容:虚拟内存设置; 操作系统中任何应用程序特定的设置; 防病毒程序设置; 其他进程(尝试运行HijackThis和/或MSRT )。