问题描述
当Project的代码量达到Idea编译的上限时,Idea将无法自动分配足够的内存给Project,这就直接导致出现了“系统资源不足”的编译中断异常。
错误如下图所示
之所以导致上面的编译中断异常出现,还需要来看看Idea的编译过程
Idea在编译时会动态的分配内存给Project,而windows也会给idea分配的内存,当windows分配给Idea的内存少于Project所需或者已经达到一定的临界点时,就会导致Idea编译工具编译中断,抛出内存溢出的错误。
解决方案一
解决这个问题的关键是我们需要理解下面这句话
windows给idea分配的内存或者Idea分配给Project的内存已经达到一定的临界点了,才导致了内存溢出了。
至此,我们知道了问题的根源所在,那么我们只要逆向思维“如果不让window有分配Idea内存,Idea分配给Project内存的机会,或者换一种编译的方式”,那我们这个错误不就是解决了么!
解决工具
使用ant编译
使用ant编译是不消耗操作系统给你idea分配的内存。ant编译的原理与idea是分开的。Ant编译直接消耗的系统内存(windows),所以不需要消耗idea的内存。就算Idea的内存分配的再小也是不会影响ant编译,所以不会报错。
解决步骤
基本上每一个Java Project中都会有一个名叫native.xml的ant编译解析文件,至于这个文件中的内容和用法我这里就不多作介绍了。
第一步:native配置
只要保证Native.xml文件中有如下代码就可以解决此问题了,至于你其它的代码互不影响,该怎么写还是怎么写。下面主要是3个方面的配置,一个是将src目录下面的文件编译输出到Classes目录下,第二个是转码,第三个是拷贝conf文件夹下面的配置文件。这三个配置都是可以单独使用和运行的,这里我们想要解决Idea的问题,就引出第四个配置“解决Idea编译报系统资源不足的错误”的配置,具体怎么配置代码如下图所示。
第二步:ant运行native文件
如果你还没有把native文件设置成ant编译文件,那也不用急,只需要在右边的Ant Build的对话框中找到那个小加号点击后就会出现
选择对话框,你只要找到你的native.xml文件的路径就好了。配置成功后你就会看到下图右边的菜单项了。
这时你直接双击“解决Idea编译报系统资源不足的错误”这个选项,Ant就去执行它的任务去了。编译成功后会出现如下提示信息窗口。至此,我要恭喜你,我们已经解决了Idea编译出现系统资源不足的错误。
第三步:去掉Idea编译配置
接下来找到上面的服务配置对话窗口,然后去掉Make和Build“test”artifact的选项,最后启动服务就好了。
Ps:我这里用的是Tomcat,如果你用别的应用服务器,此操作依旧。
相关源码
<!--解决Idea编译报系统资源不足的错误 -->
<target name="解决Idea编译报系统资源不足的错误" depends="compile,copyConf">
</target>
<!--编译Class,将Src目录下面的文件编译输出到Classes目录下-->
<target name="compile" description="compile the source ">
<javac srcdir="${src.dir}" destdir="${classes.dir}" encoding="GBK" optimize="off" fork="true" includes="**/*.java" memorymaximumsize="500M" classpathref="lib"/>
</target>
<!--转码-->
<target name="CH-native">
<delete>
<fileset dir="${classes.dir}/com" includes="**/*.properties"/>
</delete>
<native2ascii encoding="gb2312" src="${src.dir}/com" dest="${classes.dir}/com"
includes="**/*.properties" excludes="**/*.svn"/>
</target>
<!--拷贝conf文件夹下面的配置文件-->
<target name="copyConf" depends="CH-native">
<copy includeemptydirs="false" todir="${classes.dir}" overwrite="true">
<fileset dir="${conf.dir}" excludes="**/*.svn, **/*.java"/>
</copy>
</target>
解决方案二
方案二是我在方案一之后才发现的解决方案,其只需要简单的配置一下就好了。
如下图,打开设置面板,找到Java Compiler项,将最大内存大小修改成原来的两倍就好了。
解决方案三
方案三是方案二的扩展,与方案二不同的是编译类的方式不同(这里我们选择Eclipse编译方式),但是最大内存大小还是需要扩大,如下图
- 大小: 18.1 KB
- 大小: 85.8 KB
- 大小: 29.7 KB
- 大小: 24.2 KB
- 大小: 104.9 KB
- 大小: 34.2 KB
- 大小: 34.4 KB
- 大小: 58.5 KB
- 描述: 此附件没用
- 大小: 34.2 KB
分享到:
相关推荐
### IntelliJ IDEA 常用配置解决方案 #### 一、IntelliJ IDEA 性能优化 在使用IntelliJ IDEA进行开发的过程中,为了更好地提升开发效率和体验,对IDEA进行性能优化是必不可少的一个环节。本章节将重点介绍如何根据...
而搜狗输入法作为一款系统级的应用,为了实现高效的输入功能,也会占用一定的系统资源。当这两个软件同时运行并且交互时,如果处理不当,就可能导致资源冲突或性能瓶颈,从而造成卡顿。 针对这个问题,描述中给出的...
2. **系统资源不足**:如果计算机内存不足或者CPU资源紧张,可能会导致JVM无法启动。 3. **版本兼容性**:Idea9可能需要特定版本的JVM才能正常工作,而当前系统中安装的JVM版本可能不匹配。 4. **环境变量问题**:...
7. **缓存管理**:定期清理和重建IDEA的系统缓存,可以解决因缓存问题导致的卡顿: - `File` -> `Invalidate Caches/Restart`,选择`Invalidate and Restart`。 8. **更新到最新版本**:保持IDEA版本的更新,新...
本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...
如果问题依然存在,可以尝试更新IDEA到最新版本,或者查阅官方文档、社区论坛寻找解决方案。此外,保持IDEA的默认设置,除非必要,否则不建议随意修改核心库文件,因为这可能会破坏原有的功能和稳定性。 总的来说,...
SpringBoot集成了Spring Security,提供了一套完整的安全解决方案。在学生信息管理系统中,可以使用它来实现用户登录、角色权限控制等功能,确保只有授权的用户才能访问特定的资源。 六、IDE支持 项目中提到了两种...
标题提到的“intellij idea 汉化包”就是这样一个解决方案,它能够将IntelliJ IDEA的界面语言转换为中文。描述中提到的“下载后,解压出来,放到lib目录下”,这是安装汉化包的具体步骤。具体操作如下: 1. 首先,...
这些问题通常需要通过修改配置文件、系统环境变量或应用特定的解决方案来解决。 在标签中提到了"源码"和"工具",这可能意味着讨论的内容不仅限于IDEA的基础使用,还可能涉及到源代码级别的开发和利用IDEA的高级功能...
除了上述常见解决方案之外,还可能需要关注macOS系统更新后对软件权限的影响。如果系统在更新中修改了文件权限,可能会导致SVN插件无法正常使用。可以通过终端使用`chmod`或`chown`命令修改权限,确保IntelliJ IDEA...
如果仍有部分元素未汉化,可能是汉化包不完整或与当前IDEA版本不兼容,这时可以参考汉化说明或查找社区的解决方案。 总的来说,安装IntelliJ IDEA的汉化包是一个相对简单的过程,但需要注意备份和版本匹配问题。...
本系统基于先进的技术栈SpringBoot、Vue、Shiro和Mysql,结合Redis进行缓存处理,构建了一套高效、稳定且易维护的解决方案。 一、SpringBoot框架 SpringBoot是由Pivotal团队提供的全新框架,旨在简化Spring应用的...
"IDEA CheckStyle离线安装包"就是针对这种情况提供的一种解决方案。 **CheckStyle插件的安装与配置** 1. **下载离线安装包**:首先,你需要从官方渠道或者可靠的资源下载CheckStyle-IDEA的离线安装包。确保文件...
1. **创建解决方案**:打开Visual Studio或其他支持多项目解决方案的IDE,如IntelliJ IDEA或Eclipse,选择"新建解决方案"选项。给解决方案命名,例如“MultiModuleSolution”。 2. **添加模块项目**:在新创建的...
总的来说,"IntelliJ IDEA 2017 汉化包"是为中国用户定制的解决方案,旨在提供更友好的中文界面,并解决特定的使用问题。通过正确安装和使用汉化包,用户不仅可以无障碍地使用IDE的各项功能,还能享受到更加流畅的...
在开发Java Web应用程序时,尤其是使用Mybatis作为持久层框架的时候,经常遇到的一个问题是:当我们在IntelliJ IDEA中修改了Mapper...同时,关注官方文档和社区解答,如CSDN问答频道,也可以帮助我们找到更多解决方案。
值得注意的是,"修改了一天,终于搞定了"表明这个过程可能涉及一些特定的配置或问题解决,因此在实际操作时,遇到问题不要灰心,多查阅文档、社区问答和官方指南,通常都能找到解决方案。 总结起来,"idea中导入cas...
Vue.js 是一款流行的前端JavaScript框架,它以简单易用、高效和可组件化著称。在IntelliJ IDEA(简称IDEA)这个强大的Java开发环境中,我们...如果你遇到任何问题,可以查阅官方文档或社区资源,通常能找到解决方案。
"ideaiu2018-汉化包.zip"就是一个针对IntelliJ IDEA 2018版本的汉化解决方案,旨在将IDEA的界面语言转换为中文,提升中国用户的使用体验。 汉化过程如下: 1. **备份原始文件**:在开始汉化之前,你需要先备份原有...