我正在使用Eclipse编写我的Java应用程序。
是否可以通过编程方式检测代码是从Eclipse调试环境(F11)执行还是代码在没有Eclipse的情况下使用“java -jar”执行。
我知道在Visual Studio中,可以检测Visual Studio是否执行,但我不是在这里编写.Net应用程序,而是在Eclipse下编写Java。
答案 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