- 浏览: 764255 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (663)
- Eclipse&MyEclipse (40)
- PHP (3)
- Java (72)
- CSS (3)
- MySQL (35)
- Oracle (68)
- Red Hat Linux (23)
- Tomcat (26)
- Oracle10gAS (1)
- Spring (28)
- MyBatis&iBatis (13)
- JS (47)
- JQuery (23)
- Editplus (2)
- 其他 (4)
- Html (15)
- SQL (5)
- Ant (2)
- Hadoop (2)
- Servlet (9)
- Windows (11)
- Flex (1)
- CentOS Linux (7)
- Microsoft SQL Server (2)
- DB2 (3)
- Mysql char 与 varchar 区别 (0)
- excel (5)
- jsp (8)
- FreeMarker (1)
- EasyUI (5)
- WebShpere MQ (1)
- Maven2 (6)
- 浏览器缓存 (2)
- visio (1)
- XML (2)
- 物联网 (1)
- Maven (3)
- JSTL (2)
- HTTP (1)
- Fourinone (1)
- IP知识 (1)
- MyBatis (1)
- 项目管理 (2)
- office2003+2007 (1)
- DOS (1)
- JProfiler (1)
- Thinpad T440p (1)
- ActiveMQ (10)
- MongoDB (5)
- Vert.x3 (1)
- Ngnix (3)
- Spark (2)
- BigData (1)
- 性能概念公式 (1)
- RocketMQ (3)
- IT名词术语 (1)
- Java编程工具 (1)
- RabbitMQ (2)
- MetaMQ (1)
- 架构 (6)
- KafkaMQ (7)
- Redis (4)
- OAuth (1)
- Gradle (1)
- CentOS (5)
- Microsoft_Toolkit (1)
- git (5)
- IntelliJ Idea (4)
- Nginx (3)
- docker (12)
- VMware (2)
- 算法 (1)
- JDBCPool (1)
- spring-cloud (7)
- netbean (1)
- 微信小程序 (2)
- CURL (2)
- Java生成二维码 (1)
- 区块链 (2)
- 机器学习 (1)
- SpringBoot (3)
- Android (9)
- 微服务架构 (1)
- Kubernetes (2)
- OpenProject (0)
- 测试 (1)
- https (1)
- 开源许可证 (1)
- ServiceMesh (2)
- NET (0)
- .NET (1)
- TEST (1)
- iOS (2)
- thymeleaf (4)
- lombok (1)
- 浏览器设置 (1)
- 富文本编辑器 (1)
- 搜索引擎 (1)
- IT常识 (1)
- UML (0)
- Axure (1)
- appstore无法联网 (0)
- apk无法安装 (1)
- SQLServer (2)
- 卸载弹窗软件 (1)
- jenkins (1)
- TortoiseGit (1)
- eureka (1)
- ajax (1)
- spyder (0)
最新评论
在C:\Program Files\MyEclipse 6.0\eclipse安装目录下,有个eclipse.ini的文件,用UltrEdit打开内容如下:
-showsplash
com.genuitec.myeclipse.product
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en
-XX:PermSize=128M
-XX:MaxPermSize=256M
我把最后两行修改成:
-XX:PermSize=64M
-XX:MaxPermSize=128M
就可以了。
个中原因,我百度了一下,现摘全文如下:
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
这里有几个问题:
1. 各个参数的含义什么?
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
解答为:
1. 各个参数的含义什么?
参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。堆内存分配 JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。 非堆内存分配 JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。 JVM内存限制(最大值) 首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:
1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢?
这是因为我们没有遵守eclipse.ini文件的设置规则:参数形如“项值”这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\Java\jre1.6.0\bin\javaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样: -vm C:\Java\jre1.6.0\bin\javaw.exe 按照上面所说的,最后参数在eclipse.ini中可以写成这个样子: -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。
另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的: -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m -vmargs -Xms40m -Xmx256m 其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。
3. 其他的启动参数。 如果你有一个双核的CPU,也许可以尝试这个参数:
-XX: UseParallelGC
让GC可以更快的执行。(只是JDK 5里对GC新增加的参数)
发表评论
-
Eclipse启动时报错Java was started but returned exit code=13(转)
2021-10-18 15:52 395Eclipse启动时报错Java was started b ... -
eclipse 拷贝字符串自动增加 转义反斜杠(转)
2020-04-19 18:37 933eclipse -> ... -
Eclipse 修改项目中的pom XML文件后项目报错
2020-03-24 10:05 638当导入一个新项目(暂命名 DEMO)后,仅修改pom xm ... -
Eclipse-设置格式化代码时不格式化注释(转)
2019-06-09 17:15 402在Eclipse里设置格式化代码时不格式化注释 今天格式化 ... -
添加Jar包到本地Maven仓库(转)
2019-05-25 19:00 390在使用Maven的过程中,经常碰到有些jar包在中央仓 ... -
eclipse查看jar包中class的中文注释乱码问题的解决(转)
2019-05-22 21:44 3481. 问题来源是在eclipse中直接查看springsi ... -
远程debug代码(转)
2018-03-16 16:45 1018参考:http://blog.csdn.net/su ... -
Errors occurred during the build. (转)
2015-06-03 11:27 797eclipse异常解决了。。。搞了好久。。。 Errors ... -
Eclipse 在加入断点时,提示出
2014-07-07 17:35 510在加入断点时,提示出 unable to install ... -
Errors running builder "Integrated External Tool Builder" on project(转)
2014-06-07 08:49 748eclipse编译工程里,报如下错误: Errors d ... -
Errors occurred during the build. Errors running builder 'JavaScript Validator'
2014-04-28 10:53 676把JavaScript Validator去掉。去掉的方法是: ... -
Eclipse 格式化代码时不换行或换行 (转 + 原)
2014-04-10 17:08 1884http://blog.csdn.net/tianxiaj ... -
eclipse 代码显示和禁止 空白行字符
2014-03-26 09:58 679window->preferences -> ge ... -
Eclipe SVN
2013-12-09 10:31 625ECLIPSE里面SVN状态图标消失,重新启动eclipse ... -
Eclipse中Build Workspace 优化(转)
2013-10-29 10:00 861在开发中,发现eclipse 的 Build Workspa ... -
Ecispe XML字体修改
2013-10-28 18:43 665修改 XML字体大小 Window -> Prefe ... -
Eclipse中选中变量后,高亮显示选中的变量(转)
2013-10-13 20:11 624Eclipse中选中变量后,高亮显示选中的变量 设置 Wi ... -
http://localhost:8080出现404错误(转)
2013-10-11 14:55 1316问题:通过eclipse来启动tomcat会碰到“访问htt ... -
eclipse中使用maven插件的问题:Updating index central|http://repo1.maven.org/maven2 转
2013-09-24 14:32 1034问题产生如下:因为单位使用了过滤,访问Internet时,超 ... -
解决Eclipse开发时光标乱跳的问题(转)
2013-08-16 17:57 1197使用myeclipse时有不少人碰到鼠标乱跳的问题,找了几个 ...
相关推荐
### "could not create the java virtual machine" 解决办法 在开发过程中,我们经常会遇到 “could not create the java virtual machine” 这样的错误提示。这个问题通常出现在启动基于Java的应用程序时,比如...
### Eclipse 运行时提示 "failed to create the java virtual machine" 的解决方法 在使用 Eclipse 进行 Java 开发的过程中,有时会遇到一个常见的错误提示:“failed to create the java virtual machine”。这一...
"Eclipse Failed to Create the Java Virtual Machine 问题图文解析" Eclipse 是一个功能强大的集成开发环境(IDE),广泛应用于软件开发、测试和维护中。然而,在使用 Eclipse 时,可能会遇到 "Failed to create ...
解决Eclipse启动出错:Failed to create the Java Virtual Machine Eclipse是一款功能强大的集成开发环境(IDE),广泛应用于Java、Python、C++等语言的开发中。但是在使用Eclipse时,用户可能会遇到各种错误,例如...
假如你机器的内存不大,改大该参数的值,会导致MemoryAnalyzer启动时,报错:Failed to create the Java Virtual Machine。 2.当你导出的dump文件的大小大于你配置的1024m(说明1中,提到的配置:-vmargs– Xmx1024m...
### Java性能优化关键知识点 #### 一、Java性能调优概览 在现代软件开发中,Java作为一种广泛使用的编程语言,其性能优化是确保应用程序高效运行的关键。性能调优不仅涉及代码层面的优化,还包括对Java虚拟机(JVM)...
could not create the java virtual machine 解决办法
标题 "Javanew_historys.zip" 提供的信息表明,这个压缩包可能包含了与Java虚拟机(JVM)相关的错误解决方案,特别是"could not create the java virtual machine" 这个问题。这个问题通常发生在尝试运行Java应用...
6. 再次运行 java –version命令,提示:Could not create the Java virtual machine.错误 7. 根据测试:还要将hpi.dll和zip.dll放到bin目录中 8. 再次运行java –version命令,OK,又出现了版本信息。此时,可以将...
2. 启动错误:“ERROR:could not create the java virtual machine!”:这可能是因为Java虚拟机内存配置不当。在`spoon.bat`中调整`PENTAHO_DI_JAVA_OPTIONS`,降低初始和最大内存分配,例如将其改为`-Xms512m` `-...
问题描述:在hadoop安装目录/bin/hadoop中有一段shell代码导致Hadoop启动datanode时出现Unrecognized option: -jvm和Could not create the Java virtual machine错误。 解决方法: 1. 修改hadoop安装目录/bin/...
Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. ``` * **调整内存设置** 检查`gradle.properties`文件中的`org.gradle.jvmargs`参数,确保它...
By leveraging the Address Windowing Extensions API, an application can create a fixed-size window into the additional physical memory. This allows a process to access any portion of the physical ...
For example, if your header file uses the File class in ways that do not require access to the declaration of the File class, your header file can just forward declare class File; instead of having ...
In the book’s final chapters, you’ll find cutting edge examples of cloud technology in action, from machine learning to business intelligence, for a taste of some exciting ways your business could ...
Before making this call, it is necessary to create the handle to registry key which needs to be queried. For this make use of RegCreateKeyEx API call. This is how the code looks like in the included ...
I decided against using SortedDictionary for the pages as it was slower than a normal Dictionary and for the purpose of a key value store the sorted-ness was not need and could be handled in other ...
couple different Java images, and then Python images. Then my mind flashed back to that terrible day with Graphite. I popped over to the Docker Index (this was before Docker Hub) and did a quick ...
LSIP200232922 (DFCT) MegaCLI misspell the word "package" as "pakage" under ctrl version and it does not displays firmware version LSIP200232921 (DFCT) MegaCLI displays version for PD in unclear ...
- ported the read-only part of Qemu's 'virtual VFAT' block driver - additions: configurable disk geometry, FAT32 support, read MBR and/or boot sector from file, volatile write support using hdimage...