Java以编程方式检测Eclipse /调试器

时间:2016-10-12 00:51:30

标签: java eclipse debugging

我正在使用Eclipse编写我的Java应用程序。

是否可以通过编程方式检测代码是从Eclipse调试环境(F11)执行还是代码在没有Eclipse的情况下使用“java -jar”执行。

我知道在Visual Studio中,可以检测Visual Studio是否执行,但我不是在这里编写.Net应用程序,而是在Eclipse下编写Java。

1 个答案:

答案 0 :(得分:2)

在过去,我通过检查我是否能找到.project文件来查看我的软件是否在Eclipse中运行。

public static boolean isRunningInEclipse(int folderDepth) {
    File projectRoot = new File(Boot.class.getProtectionDomain().getCodeSource().getLocation().getFile());       
    for (int i = 0; i < folderDepth; i++) {
        projectRoot = projectRoot.getParentFile();
        if (projectRoot == null || !projectRoot.isDirectory()) {
            return false;
        }
    }
    return new File(projectRoot, ".project").isFile();
}

如果您的主要课程位于bin文件夹中,您使用folderDepth = 1调用方法,如果您的主课程位于target/classes/,则使用folderDepth = 2调用它。

如果您特别想知道它是否在调试器中运行,我建议您检查this answer