java上打开一个游戏显示java异常退出,内存不足,是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java上打开一个游戏显示java异常退出,内存不足,是怎么回事相关的知识,希望对你有一定的参考价值。

explorer.exe出错的几种可能原因:
1.系统资源不足。如果机器配置低的话建议不要同时开启太多应用程序。另外可适当加大虚拟内存,特别是经常玩大型游戏。这种情况下升级机器是最根本的解决办法呵呵。

2.系统文件损坏。检查explorer.exe的文件大小,正常情况下应该显示为237k或者238k,如果大小不一致,可运行sfc/scannow扫描系统文件。若explorer.exe程序本身损坏,可以从别的机器上拷贝一个explorer.exe文件到本机,调用任务管理器,接入explorer.exe进程,然后新建任务拷贝新的文件到系统盘\WINNT(2000)或\WINDOWS(XP)目录下。

3.软件冲突(特别是右键第三方加载项)。譬如输入法,清华紫光输入法3.0版本有的时候会出现explorer.exe出错,取消清华紫光输入法,用其他输入法输入会没有问题。清华紫光输入法4.0版本未发现类似问题。苹果美化版的rar惹的祸,把它卸载了暂时就没有这个错误了,你也可以看是不是安装了苹果美化版的rar,有的话,也可以卸载了来看一下。
装了酒精120%或者酒精52%虚拟光驱,在番茄的系统中很容易出现explorer.exe错误。卸载有时候会解决问题。

4.病毒。(wc98pp.dll)
网络协议处理器-电子书编译工具WebCompiler相关。
wc98pp.dll文件本身并没有影响,很多计算机上都有此文件,但是当explorer.exe出错的时候,删除此文件可以解决问题,然后从注册表中搜索相关键值删除。
usign.dll,有人提到这个文件与wc98pp.dll两个文件类似,删除这两个文件可以清除IE中不断跳出小广告。在公司的计算机中未发现此文件。

5.windows升级造成的
大家都知道我们用的是盗版xp,既然是盗版的,肯定会出现各种各样的错误.微软也不是sb,肯定会搞一些问题来惩罚我们,所以建议大家不要上网自动更新,并且把自动更新关掉(实际上这个更新没p用)

6.系统内核错误。此类情况暂时无法解决,重新安装系统。

7.内存问题。有人通过更换内存,解决了这个问题,所以这应该是个原因,不过如果这个出问题就比较麻烦了,所以先考虑前面几个原因。

8.其他原因。计算机运行某个程序等待时间过长,比如读取数据,尤其是光盘或者外界设备的数据的时候,也会出现explorer.exe出错。

exeplorer.exe是系统的外壳。这个文件因为开机就被加载到内寸中。所以这个文件通常不会损坏。发生错误是因为注册表的中与exeplorer关联的项发生异常。原因很多,不好查找。所以一般只有重新安装系统。如果嫌麻烦,使用启动盘启动系统,在恢复控制台中修复。

解决方法
1.第三方加载项的问题
我以一般的途径从遇到explorer错误的人们得到信息。通常他们都这么叙述:"当我在资源管理器中右键点击一个文件时系统提示explorer遇到错误需要关闭"或"当我尝试浏览文件夹的时候,我收到系统提示explorer遇到错误需要关闭"。
通常,这些错误是由于第三方加载项没有正常工作所引起的。这些加载项负责创建一些选项当你在资源管理器右键点击一个文件时。一些第三方程序会添加他们自己的选项到这些菜单,而这有些时候会出现问题。如果你仔细看你会发现几个非常规的选项在这个右键菜单上:"SendtoFaxRecipient","ScanwithNortonAntivirus","TextPad"和"Winzip"。

如果想尝试寻找引起explorer错误的第三方加载项,你需要下载这个工具:ShellExView,它会允许你查看和禁用加载项。
解决办法:当你下载并运行它以后,ShellExView会显示出所有的安装在你的电脑上的加载项。你可以分类排序使所有第三方加载项示在一起。然后,选择所有第三方加载项并禁用它们,并试着执行以前导致错误的操作(比如右键点击一个文件或浏览一个文件夹等等)如果没有错误提示,就说明你所禁用的一个加载项造成了explorer错误。接下来,通过每一次启用一个加载项并尝试之前引起错误的操作就可以找出引起错误的第三方扩展了ShellExView会显示出加载项的所有的额外信息,比如版本号、公司名称。如果你希望继续使用致使explorer出错的加载项,请检查他的更新版本或联系他的客户支持explorer出错的另一个原因是因为机器里内含病毒、木马或间谍广告程序。想检测电脑里存在的病毒请使用专业的程序,比如江民、瑞星等杀毒软件;检测电脑里存在的间谍软件,我推荐下列程序:MicrosoftWindowsAntiSpyware(Beta)、Lavasoft'sAd-Aware、RoseCitySoftware'sSpywareMedic或者Spybot'sSearch&Distroy。

2.一些关于此问题的中文知识库文章
在“地址”框或“打开”框中键入地址时出现错误消息。桌面是白色的并且错误信息报告Browseui.dll中有“Windows资源管理器”错误信息:ExplorerCausedanInvalidPageFaultinModuleBrowseui.dll(资源管理器导致模块Browseui.dll中出现无效页面错误)
错误信息:ErrorLoadingExplorer.exeYouMustReinstallWindows(加载Explorer.exe时出现错误,必须重新安装Windows)
查看“我的电脑”中的内容时Windows资源管理器退出在试图映射网络驱动器时Windows资源管理器退出并生成错误信息尝试安装Windows2000ServicePack3时出现错误信息“Explorer.exeHasGeneratedErrorsandWillBeClosedByWindows”(Explorer.exe发生错误,将被Windows关闭),在关闭某个文件夹时,Explorer.exe可能会生成一个应用程序错误尝试打开“网上邻居”时收到“WindowsExplorerHasEncounteredaProblemandNeedstoClose”(Explorer.exe发生错误,将被Windows关闭)错误消息。右键单击文件时出现错误信息,或是当在Autodesk或Discreet产品中打开某些文件时发生问题在WindowsXP中试图打开“网上邻居”或“共享文档”时,“我的电脑”和Windows资源管理器意外退出Explorer.exe在WindowsXP中反复意外退出。

3.怎样避免
使用WindowsXP时间比较长后,有时运行会很不流畅,甚至会不响应鼠标键盘对操作。很多时候是系统的假死。和真正的死机不同,假死完全可以被“救活”。假死的根源在于explorer.exe(整个图形界面的驱动)。既然会假死,那就一定有解决方法,下面就为朋友们介绍一些拯救系统假死的方法。
第一招:当使用资源管理器打开新文件夹或用浏览器打开新页面不响应时,用“Win+D”或单击快速启动栏的显示桌面按钮,再在桌面上按F5或右键刷新即可。一般刷新3-5次后再把资源管理器或浏览器窗口还原就会恢复正常了。
第二招:这一招很灵,能对付大多数假死的情况。当任务管理器都打不开时,先把光驱弹出之后再弹入(千万不要在光驱里放光盘),鼠标指针旁会出现一个小光盘标志,这时就会唤起系统的知觉,这招可是屡试不爽!
第三招:最后的杀手锏,用组合键“Ctrl+Alt+Del”启动任务管理器,然后在“进程”选项卡中结束explorer.exe,整个桌面只剩一张壁纸,桌面图标和任务栏都没影了,然后在任务管理器的“文件→新建任务”中输入explorer.exe,即可恢复正常。这一招还可释放内存资源,一举两得。
照下面的方法可以明显减少假死可能性:
能不用右键菜单的时候就尽量不用,尽量使用热键如用F2重命名、用F5刷新等。WindowsMediaPlayer最好不用可视化效果,用了往往会卡机。真想用的话,微粒是最不容易卡机的,建议用“微粒”可视化效果。不要轻易使用内存整理软件,往往会越整理系统速度越慢。如果真想释放系统资源,注销当前用户再重新登录是最好的方式。说了这么多,大家也不妨试试这些方法。
参考技术A 你的游戏耗尽了内存,估计是程序写得不好,占用太多内存。

如果是手机,就是手机内存太小;如果是电脑,那就是jvm内存太小了。
参考技术B 1.上面的楼主回答的有点问题,内存不足,应该是手机内存不足,不会是存储卡不够用;
2.每个手机都会将内存的一块Size分配给java虚拟机,内存不足应该是你安装的java程序过去,或者是本身安装的该游戏超出了该Size;
参考技术C 删掉短信和彩信以及存在手机内存里的文件试试。 参考技术D 删除一些不用的应用程序 。 第5个回答  2011-07-12 java的游戏就是一个压缩包,异常退出,内存不足,可能是你的储存卡的内存不够用了,压缩包解压不出来当然要异常退出了,只要你把不重要的东西删掉点,留出足够的空间就好咯

来自 junit 测试的“分叉 Java VM 异常退出”错误

【中文标题】来自 junit 测试的“分叉 Java VM 异常退出”错误【英文标题】:"Forked Java VM exited abnormally" error from junit tests 【发布时间】:2010-12-23 05:04:46 【问题描述】:

我有一个在开发机器上单独运行时通过的 java junit 测试。我们还有一个 hudson 作业,它在带有 Java 1.5 的 Mac OS X 10.4 节点上运行所有测试,通过 ant 调用。直到最近,该测试才在 hudson 构建中通过,但现在(没有相关的代码更改)每次测试都失败,并出现以下错误:

错误信息

分叉的 Java VM 异常退出。 请注意报告中的时间 不反映直到 VM 的时间 退出。

堆栈跟踪

junit.framework.AssertionFailedError: 分叉的 Java VM 异常退出。 请注意报告中的时间 不反映直到 VM 的时间 退出。

谷歌搜索显示许多其他人似乎遇到了同样的问题,但我找不到任何答案。

【问题讨论】:

也许提供完整的堆栈跟踪。 Pascal:没有完整的堆栈跟踪。我仍然没有找到答案,但我们通过将 hudson 作业移至运行 OS X 10.5 和 Java 1.6 的不同 Mac 来解决这个问题。此设置不会出现问题。 那个项目不会碰巧在使用 JMock,声明了 javaagent 参数,对吧? @Zefi 不,它没有使用 JMOck 它是如何解决的?以下哪个是正确答案? 【参考方案1】:

我遇到了类似的问题。我将 junit 测试作为 ant 任务运行。我添加了 showoutput="yes" ant junit 属性并运行了 ant junit 任务。然后它显示了导致分叉 jvm 退出的异常堆栈跟踪。

【讨论】:

【参考方案2】:

对我来说,是分叉 VM 中的“java.lang.OutOfMemoryError”(带有 fork="yes" 的 junit 任务)导致此消息出现在主 VM 中。

OutOfMemory 在 ant 日志中可见(嗯,可见,因为它仍然存在)。

我用的是ant 1.7.1,所以升级ant没希望了。

在“运行>外部工具>外部工具>JRE”中放入与Eclipse.ini(-Xms40m -Xmx512m -XX:MaxPermSize=256M)相同的VM参数后,问题就解决了。

我将 fork 设置为“否”以确保 ant 使用参数。

【讨论】:

另一种让分叉的 junit 进程访问更多内存的方法(这里详述:ant.apache.org/manual/Tasks/junit.html)是在 junit ant 任务上使用 maxmemory 属性。 eclipse就是这样,用ANT运行时我们能做什么?【参考方案3】:

我相信当我最终在我的类路径中使用多个版本的 junit 时,我曾经看到过这个错误。可能值得一试。

【讨论】:

【参考方案4】:

当抛出未捕获的 RuntimeException 时,可能会发生这种情况。不幸的是,junit ant 任务不输出异常,因此没有简单的方法来确定根本原因。您可以通过从将显示异常的命令行运行测试用例来解决此问题。

java <vm-args> org.junit.runner.JUnitCore <test-class-name>

在我的例子中,抛出了 IllegalArgumentException。

【讨论】:

【参考方案5】:

我遇到了这个问题,事实证明该进程实际上是在调用 System.exit()。然而,Ant 中也有一个错误,有时会出现这种情况。我认为 Ant 1.7.1 修复了这个错误。因此,请确保您正在运行该版本。

【讨论】:

谢谢。当我向 File -> Close 添加条件 System.exit() 而不是仅仅依赖 JPaneldispose() 时,我遇到了这个问题。我很高兴我不必乱用 Ant 或日志文件。【参考方案6】:

虚拟机崩溃了吗?你能找到一个转储文件(称为hs_err_pid*.log)吗?如果是这种情况,转储文件将为您提供崩溃原因的线索。

【讨论】:

【参考方案7】:

前段时间我也有同样的事情。问题是 System.exit() 在某处被调用。但可能很难找到,因为调用可能来自您的代码或您使用的库之一。

【讨论】:

谁发布了一个调用 System.exit() 的通用库,需要被追捕和枪杀。【参考方案8】:

我的类路径中有多个 junit jar。一个来自 ant,另一个来自 WAS。当我删除错误消失时...我使用的 Ant 版本 1.8

【讨论】:

【参考方案9】:

我通过设置以下环境变量解决了我的问题:

变量:_JAVA_OPTIONS 值:-Xms128m -Xmx512m

【讨论】:

【参考方案10】:

对我们来说,实际上是我们偶然(使用了较新版本的 eclipse)开始使用 Ant 1.7.x 而不是与我们的 Weblogic 8.1/JDK 1.4.x 环境兼容的旧 ant 版本。我们通过将 Eclipse->Windows->Preferences->Ant->Runtime 中的 Ant Home 改回旧版本的 Ant 来解决此问题。

问候 克拉斯

【讨论】:

【参考方案11】:

在我的情况下,这是一个类内的静态初始化程序/方法/块中的未捕获异常。

具体来说,我有一个类调用另一个类中的静态方法,它触发了 NumberFormatException。

顺便说一句,将“showoutput=true”添加到 build.xml 中的任务并没有帮助解决问题。由于静态块是最先运行的东西之一,因此 JVM 在它可以输出任何东西之前就崩溃了。

【讨论】:

【参考方案12】:

我也有这个问题。从以下位置更改 junit 任务:

<batchtest fork="yes" ... /> 

<batchtest fork="no" ... /> 

为我修好了。我不完全理解蚂蚁的这个领域,或者为什么这样做会解决它。在我的场景中,这是“BeforeFirstTest”中的一个错误,我认为它会因为我的类路径中有两个 ant 文件而出错(这可能是我应该修复的)

我认为问题在于 ant 的一个版本: http://track.pmease.com/browse/QB-500;jsessionid=C1CF6999CBBDB5097A9CFCF4A11AF6C0?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

ETA:我认为 batchtest="no" 实际上会更改类路径,因此会排除我的违规 ant jar。

【讨论】:

【参考方案13】:

我将TestNG 库添加到测试库,它解决了这个问题。

【讨论】:

【参考方案14】:

在我的例子中,运行我的测试的类路径超过了操作系统允许的环境变量的最大长度(又名the Linux Classpath too long issue).

解决方案是创建一个pathing jar。简化步骤:

    使用 jar(或您的 IDE)为您的项目制作一个 jar,我们将其命名为 MyProject.jar

    使用文本创建一个名为 Manifest.txt 的文件

类路径:MyProject.jar

    运行jar命令行这个

jar cfm PathingJar.jar manifest.txt MyRootPackage/*.class

然后,在您的构建工具中,针对路径 jar 本身运行您的测试指令(不要混入其他类或 jar)。然后我就可以让我的测试在没有那个异常的情况下运行。

【讨论】:

【参考方案15】:

我在 Jenkins 上运行测试时遇到了类似的问题,相同的测试在本地通过。

我可以通过将日志级别设置为 WARN 来解决问题

【讨论】:

【参考方案16】:

在将新版本的 NetBeans 重新安装到外部硬盘、同时升级 Junit 并使用我的旧工作区后,我遇到了这个问题。

对我来说,解决同样的问题很简单:

只需将 JUnit-Library 添加到项目 properties => Libraries => Compile TestsRun Tests

所以,就我而言,这只是缺少库或 JUnit 版本冲突。

【讨论】:

【参考方案17】:

我遇到了同样的问题。问题在于通过模拟 Config 类生成字节码;我们将导入更改为

import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

它成功了。

【讨论】:

以上是关于java上打开一个游戏显示java异常退出,内存不足,是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

如何定位Android NDK开发中遇到的错误

可以使用 Java 程序的退出代码来检测磁盘空间不足的异常吗?

为啥使用JAVA的时候老显示内存不足?

我的世界提示游戏非正常退出,请查看日志文件,或寻求他人帮助exit code: -1073740940

Java异常

Java异常