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

标签 java debugging scala intellij-idea

我可以将我的应用程序作为独立应用程序(例如从命令行)或一种特定方式启动 - 它直接“来自”源代码,即使用 IntelliJ。

有没有办法检测应用程序是否从 IntelliJ 启动?只有这个,二元决定。

解决方法很多,在启动时添加额外的选项,但我正在寻找直接的解决方案,例如 C# How to know that the application is launched by debugger (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 传递大量参数,它就没问题。

最佳答案

我过去曾使用下面的方法来检查调试设置。你可以使用类似的东西

ManagementFactory.getRuntimeMXBean().getInputArguments()

enter image description here

关于java - 如何检测我的应用程序是否从 IntelliJ 启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417524/

相关文章:

css - 在我的 Android 上调试 JQuery Mobile

debugging - 创新设置 : How to watch variables values or write to debug output?

scala Iterator 中的 scalaz Iteratees

scala - 如何将完全格式化的 SQL 与 Spark 结构化流结合使用

java - 如何使用线程每次进行检查(例如在后台运行)直到我的条件为真

java - 使用分而治之检查排序数组是否有 A[i] = i

java - 写入文件而不覆盖或追加

javaFX launch() 不工作

linux - 如何使用 GDB 创建测试脚本

Scala:没有getter就不能写setter?