In Java to indicate if code is running from IntelliJ/Eclipse etc or command line

扶醉桌前 提交于 2019-12-05 00:10:01


I would like to know if there is an option to write programmatic if code is running via Eclipse/IntelliJ or any other editor or running from command line

I was thinking to use System.getProperty() but is there any property that indicate it?

Thanks in advance



There is no reliable way to do that. The IDE itself would use a JRE / JDK that is installed on your system or one that comes packaged with the IDE. There is nothing in the SDK / JVM that specifically identifies itself as running from within an IDE.

If you need to identify this in your program, pass a system property through the -D flag when you run the code from the IDE. The presence (or absence) of this property can be used to determine where the code is being run from.


The following code can detect whether your code is ran from IntelliJ IDEA or not.

public static boolean runningFromIntelliJ()
    String classPath = System.getProperty("java.class.path");
    return classPath.contains("idea_rt.jar");

It's tested working on Linux, Mac OS X and Windows so it should be platform independent.


This only works if you're not using one of the "Shorten command line" options from the Run/Debug configuration. As we need to shorten the command line (the classpath was geting too long) I'm now using

public static boolean runningFromIntelliJ()
    return System.getProperty("idea.test.cyclic.buffer.size") != null;

IntelliJ sets that property when it's running tests.