IDEA/Pycharm : failed to create jvm error code 4 解决办法

首席安全砖家 发布于 2014/03/10 15:59
阅读 8K+
收藏 1

xp , jdk 1.6  

启动 的时候 

failed to create jvm error code 4  , 启动失败


 首先看官网 如何解释的:


This Windows specific problem can occur if Java Virtual Machine can't allocate the specified amount of memory in a single continuous chunk when you start the IDE.

Recent IDE versions with the new launcher fail with this error instead: Failed to create JVM: error code -4.

IDE runs in 32-bit mode by default which limits the total amount of process memory that can be addressed to 2GB on most Windows versions.

Even if the maximum heap size (-Xmx) is set to just 512m, you can still observe this problem for the following reasons:

  • Heap size is not the total memory limit, the value of -XX:PermSize is also added to this number, plus stack size for every thread, plus memory mapped files, plus internal JVM memory for the JIT compiler and other needs. All these factors make it easy to get close or exceed the 2GB value.
  • Even if total memory doesn't exceed the OS limit, JVM requires all the heap memory to be continuous. There might be no such chunk available in the address space to fit in the heap.
  • Address space fragmentation can heavily limit the maximum heap size that can be used. Your system may have a lot of different application installed and running. Some applications inject DLLs into the address space of other processes leading to fragmentation. Use the DLLs view (Ctrl+D) in theProcess Explorer to find out what apps injected their hooks into the IDE process. Some common dynamic libraries that you can observe: TortoiseOverlays.dll, mdnsNSP.dll, DropboxExt.dll. The more third-party libraries you see there, the higher is the chance that the address space will get fragmented and you will get this error even with low heap values.
  • IDE .exe launcher can itself cause additional fragmentation, we are using a third-party tool for this launcher and do not have full control over it, but in the future updates we'll migrate to our own launcher that should reduce the fragmentation.

Solutions

  • Reduce -Xmx and -XX:PermSize values in IDE_HOME\bin\<product>.exe.vmoptions file, try to do it step by step reducing by 100m every time until it starts. Refer to the Configuring JVM options and platform properties for details.
  • Start in 64-bit mode, for example IntelliJ IDEA provides idea64.exe launcher that will use 64-bit JDK found in the registry (you have to install it separately).
  • Start the IDE using <product>.bat file instead of the .exe (also useful if 64-bit executable is not provided for your product).
  • .bat script will use 32-bit JDK by default (from the .\jre directory), you can override it with the environment variable pointing to the 64-bit JDK installation home, the variable would depend on the product: IDEA_JDK for IntelliJ IDEA, WEBIDE_JDK for PhpStorm and WebStorm, PYCHARM_JDK for PyCharm, RUBYMINE_SDK for RubyMine. See Selecting the JDK version the IDE will run under for more details.
  • Reduce the number of applications fragmenting the process address space by uninstalling those you don't use.




解决办法:


减少- Xmx和- XX:在$ IDE_HOME \ BIN \ idea.exe.vmoptions ,尝试对 -XX:MaxPermSize=250m 这个属性值进行 每100 一次的 方式进行 递减。,直到它能够启动

楼主的是默认的是250m ,减至150m 的时候,启动成功。 

over





加载中
0
永远对你好
永远对你好

测试有效。

首席安全砖家
首席安全砖家
哈, 帮到一个人
0
m
musicbear
多谢分享,真的帮到我了
0
p506738532
p506738532

谢谢,我的pycharm的配置文件是pycharm.exe.vmoptions。按照博主说的,改成了150能启动了。

返回顶部
顶部