Я могу запустить свое приложение как отдельное приложение (например, из командной строки) или одним конкретным способом - прямо «из» исходного кода, то есть с помощью IntelliJ .
Есть ли способ определить, было ли приложение запущено из IntelliJ или нет? Только это бинарное решение.
Обходных путей предостаточно, добавление дополнительных опций при запуске, однако я ищу прямое решение, например, для C # Как узнать, что приложение запускается отладчиком (VisualStudio) C #
Решение может быть действительным для любой IDE, но должно быть действительным как минимум для IntelliJ.
Для тех (включая меня), которые ищут готовый к использованию код ( Код Scala ):
object ProgramInfo
{
val isStandaloneApp = sun.management.ManagementFactory.getRuntimeMXBean().getInputArguments.isEmpty
val isDebugMode = scala.collection.JavaConversions.iterableAsScalaIterable(sun.management.ManagementFactory.getRuntimeMXBean().getInputArguments).exists(it => it.startsWith("-agentlib"))
}
Он не будет работать в сложных случаях, но если вы не пройдете тон параметров JVM, это нормально.