如何检测我的应用程序是否从IntelliJ启动?

gre*_*man 5 java debugging scala intellij-idea

我可以将我的应用程序作为独立应用程序(例如从命令行)或一种特定方式启动 - 它直接来自"源代码",即使用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"))
}
Run Code Online (Sandbox Code Playgroud)

它不适用于复杂的情况,但是如果你没有将大量参数传递给JVM,那就没关系了.

Ami*_*far 9

我过去使用过以下内容来检查调试设置.你可以使用类似的东西

ManagementFactory.getRuntimeMXBean().getInputArguments()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 请注意,如果未在调试模式下启动已启动的应用程序,则此操作无效. (2认同)