Changing IDE default directories used for config, plugins, and caches storage

Common cases when you may need to change the default locations of the IDE files:

  • user profile drive runs out of space
  • disk is slow and you want to use faster HDD or SSD for caches
  • default user profile points to the UNC path unsupported by the IDE
  • home directory is on a network drive
  • user profile directory is not detected correctly (Java bug 4787931)
  • you want to create a portable installation on a USB stick
  • home directory is encrypted and slows down the IDE or causes caches corruption
  • caches should be excluded from the home directory backup
  • antivirus or search indexer is scanning the home directory affecting IDE performance
Locations can be changed by editing idea.properties file. The easiest way is to use Help | Edit Custom Properties… menu action. It will create a copy of this file in the appropriate location so that the original file in the IDE bin subdirectory remains unmodified and doesn't cause conflicts during the patch updates.
 
Follow the comments in IDE_HOME\bin\idea.properties file to change the defaults, make sure to uncomment the lines defining these properties:
  • idea.config.path
  • idea.system.path
  • idea.plugins.path
  • idea.log.path

Example:

idea.config.path=c:/work/idea/caches/trunk-config
idea.system.path=c:/work/idea/caches/trunk-system
idea.plugins.path=c:/work/idea/caches/trunk-plugins
 
 
Changing the location of idea.properties file
 
If needed, you can also override the location of idea.properties file using IDE specific environment variable:
  • IDEA_PROPERTIES — IntelliJ IDEA
  • CL_PROPERTIES — CLion
  • APPCODE_PROPERTIES — AppCode
  • PYCHARM_PROPERTIES — PyCharm
  • DATAGRIP_PROPERTIES — DataGrip
  • STUDIO_PROPERTIES — Android Studio
  • WEBIDE_PROPERTIES — WebStorm
  • PHPSTORM_PROPERTIES — PhpStorm

For example: IDEA_PROPERTIES=C:\Users\USER\idea.properties

 

The order in which IDE will read idea.properties files is as follows:

  1. Environment variable (%IDE%_PROPERTIES)
  2. Default IDE configuration directory
  3. IDE_HOME\bin\idea.properties

Unlike .vmoptions file handling, idea.properties file with the higher priority doesn't undefine or discard variables already defined in the file location with lower priority. If there is the same variable defined in multiple properties files, the value of the variable from the higher priority file will be used, this way you can override the defaults already defined in IDE_HOME\bin\idea.properties in another file in the IDE default config directory or defined via the %IDE%_PROPERTIES environment variable.

35 comments

This is useful information.  It would be nice if there was a comment here on what should/should not  be copied during this process.

1

Jeff, It's assuming that you move the contents of these folders to the new corresponding locations.

1

I am glad you said that.  I was just about to  not do so...  I found "config" and "system" in the directory and the other two seem to be subdirectories of "system"...  I copied these to my SDD drive and restarted Idea.  It took a minute for IDEA to figure out what was going on and then worked fine on my grails project.  After this I saw at least some of the disk activity on the SDD. 

1

I tried to change the values but it didnt worked. There will be created a new folder in my profile. I use IntelliJ IDEA 13.0.1.

0

I changed the values *and* copied the idea.properties from $IDE_HOME/bin to $HOME. Neither seems to have had an effect. v13.0.2-IC

0

Jem Mawson, make sure to uncomment the lines in the file. Copying is not needed unless you are on Mac.

0

Yes, uncommented those lines & they didn't take effect. Strange corporate policy stuff is afoot I think.

0

This issue is extremely frustrating for Windows users (and it shows a bias towards Mac/Java).  By default, Windows 8 does not allow users to modify files in the Program Files directory (for valid security reasons).  In addition, when you open the config file using notepad, it's munged together with no line breaks.  So you spend 10 minutes hitting a line return in front of every '#' in order to read it, but can't save it once you modify it.  No amount of manipulating in the UI allows you to change the default home directory and it always leads to a build error.  JetBrains needs a more elegant solution to this that is not focused around working on a Mac.

0

And changing the path didn't work anyway.  It still looks to the network location during a build

0

I am very new to Idea, but isn't it much easier for Windows Users to set user.home as a System property in idea{,64}.exe.vmoptions, e.g., to -Duser.home=C:\Users\xxx? For some strange reason Windows/Java uses %HOMESHARE% instead of %USERPROFILE% as User Home (and %HOMESHARE% here points to a very slow network drive ...

0

@Zsmith4 Why in the world would you ever install any IDE or program that you want to be able to edit in C:\Program Files. As for "valid security reasons", any program you install can just grab admin rights and do whatever, there's no point to the security since it only bothers the user. You should also be using something like Notepad++ to edit these kinds of files to avoid them becoming a jumbled mess.

 

Any half-baked programmer knows how to circumvent these things. This is purely a "you" and windows issue.

1

@B3162696: Can you imagine there are organizations on this planet (banks, military, ...) which do not allow the average user to install software like IDEs on their own or in self defined places apart from c:\Program Files. Therefore it is always convenient if the configuration of the tools can be outsourced to user space ...

0

I find it easier to move configuration folder to another location (SSD or another drive) and just create a soft link pointing to it. This way it's transparent to Intellij and there is no need to change the configs.

0

It works.

But there should be more convenient way to fix "idea.system.path" as its default value was prevented CMake from correct work. In my case, cyrillic characters were presented in my <user name> so CMake failed.

0

Where exactly do you fnd & change the value?

0

 I have a similar (bus slightly different) scenario. I need to have the project build directories for different projects stored in project-specific locations because of compartmentalization needs. Each project has a separate truecrypt volume with its data and so I need the source code to not "wander" when I build. Isn't there any way other than setting the entire system directory to re-point the build path? I suppose I could keep a separate idea.properties for each project's work and move them around as I start/close CLion to work on each project, but this seems hackish at best. I guess I could also just have a completely separate CLion install per project inside the truecrypt container with the idea./properties customized, but that seems kind of silly and wasteful (and a real pain since I'd have to re-do all of my settings/plugins/etc. for every project). 

I'm still evaluating CLion and i *REALLY* like it so far. It's a shame that something as simple as a project specific build space setting will likely be a deal breaker on being able to use it.

I'm open to any suggestions.

0

Hi. I have set up PyCharm to store its `config` and `system` folders at `C:\DJP\pycharmConfig`. This works well.

However, when I update PyCharm with a patch the update process creates a folder in my Windows profile called `.PyCharm2016.1\system\restart`. The folder has about 172 MB of files inside. This causes problems because the storage limit on my profile is only 15 MB...

I would like this `restart` folder to be put in `C:\DJP\pycharmConfig\system`. How can I do this?

Thanks for any help that you can offer.

0

Just a minor note: above it says "Follow the comments in idea.properties file to change the defaults..." But with IntelliJ IDEA 15, on OS X, my $IDE_HOME/bin/idea.properties has no comments whatsoever in it, just 19 lines of normal-looking properties (none of those being the path properties listed above).

[Separately, since I have a single (SSD) drive, and full permissions to all the files and directories under ~/Library/*/IntelliJIdea15, it seems nothing would be achieved by changing those properties (or making the current directories be symlinks to other locations on the same drive).]

...back to restarting IntelliJ every 30-40 minutes because it "Failed to save settings"...

L

0

When updating, the updater finds a problem, with the only solution to either replace or ignore the file bin/idea.properties (see image).

If I select replace, I'll lose my adaptations.

If I select ignore, I might miss on new features introduced by Jetbrains in the update.

Can you add another option called 'merge', or 'compare' which would offer me more control on what values to choose for individual properties?

Thanks in advance,

:re

Edited by Roger Erens
0

See https://intellij-support.jetbrains.com/hc/articles/206544869. Don't edit files inside IDEA_HOME. Problem solved.

https://youtrack.jetbrains.com/issue/IDEA-162752#comment=27-1659279 has more details if you are relocating IDE folders via .properties.

1

@Serge:
Thanks for the quick reply. Maybe you should put that link and the warning "Don't edit files inside IDEA_HOME." at the top of this page?

0

The recommended way of settings VM options and properties is already at the very top of the article.

1

How does this work with multiple products? AFAIU the approach from above would not work if I like to tweak DataGrip, RubyMine PHPStorm and WebStorm for example. 

For DataGrip the following is commented out: `idea.config.path=${user.home}/.DataGrip/config` and `idea.system.path=${user.home}/.DataGrip/system`. I cannot imagine that setting both to some generic path like ${user.home}/.JetBrains will work as probably each IDE will fight with the settings of the other.

Am I missing something here or is the proposal from above only suitable for a single product? Or is there a product specific env variable available? Something like

IDEA_PROPERTIES_DataGrip

?

 

 

0

Environment variable is unique for every product, check the <product>.bat file if you are on Windows to see what variable is used.

CL_PROPERTIES
PYCHARM_PROPERTIES
DATAGRIP_PROPERTIES

0

I see. Wasn't aware of those. Thank you very much pointing this out!

0

What are the names of env. vars for androidStudio, webstorm, phpstorm?

Edited by Mike2060
0

STUDIO_PROPERTIES
WEBIDE_PROPERTIES
PHPSTORM_PROPERTIES

0

Android Studio has issues accepting its new reality... But maybe restart will fix that.
Also, I added evn var for studio, edited idea.properties as all others and AS fails to install update.

It did accept change of config and system directories but unlike all other JB apps it still creates directory under default location. Reboot did not help. Update issues are gone after setting _JAVA_OPTIONS values to "-Xms2048m"

Edited by Mike2060
0

I noticed that after all those changes I can't run program from normal (32bit) launcher. Only 64bit works. Why is that? Have I done something wrong?

0

Please sign in to leave a comment.

Have more questions?

Submit a request