[英]Java Programmatically Detect Eclipse/debugger
我正在使用Eclipse编写我的Java应用程序。
是否可以通过编程方式检测是从Eclipse调试环境(F11)执行代码还是使用“ java -jar”在没有Eclipse的情况下执行代码。
我知道在Visual Studio中可以检测Visual Studio是否执行,但是我不是在这里编写.Net应用程序,而是在Eclipse下编写Java。
过去,我通过检查是否可以找到.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调用该方法。
如果您特别想知道它是否正在调试器中运行,建议您检查此答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.