Я могу запустить свое приложение как отдельное приложение (например, из командной строки) или одним конкретным способом - оно напрямую «из» исходного кода, то есть с использованием IntelliJ.
Есть ли способ обнаружить, еслиприложение было запущено с IntelliJ или нет?Только это, двоичное решение.
Обходных путей достаточно, добавляя дополнительную опцию при запуске, однако я ищу прямое решение, подобное этому для C # Как узнать, что приложение запускается отладчиком(VisualStudio) C #
Решение может быть действительным для любой IDE, но должно быть действительным по крайней мере для IntelliJ.
Небольшое обновление
Для тех(включая меня), ищущий готовый к использованию код ( Scala code ):
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, это просто отлично.