Как определить, было ли мое приложение запущено из IntelliJ?

Я могу запустить свое приложение как отдельное приложение (например, из командной строки) или одним конкретным способом - прямо «из» исходного кода, то есть с помощью 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, это нормально.

5
задан Community 23 May 2017 в 12:10
поделиться