mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
GP-2688: Improved check for running in development mode
This commit is contained in:
parent
5b30bb95c0
commit
d5238487e3
1 changed files with 10 additions and 10 deletions
|
@ -83,20 +83,20 @@ public class SystemUtilities {
|
|||
Class<?> myClass = SystemUtilities.class;
|
||||
ClassLoader loader = myClass.getClassLoader();
|
||||
if (loader == null) {
|
||||
// Can happen when called from the Eclipse GhidraDev plugin
|
||||
// Can happen when called from the Eclipse GhidraDev plugin
|
||||
return false;
|
||||
}
|
||||
String name = myClass.getName().replace('.', '/') + ".class";
|
||||
String protocol = loader.getResource(name).getProtocol();
|
||||
switch(protocol) {
|
||||
case "file": // Source repository mode (class files)
|
||||
return true;
|
||||
case "jar": // Release mode (jar files)
|
||||
case "bundleresource": // Eclipse GhidraDev mode
|
||||
return false;
|
||||
default: // Unexpected protocol...assume a development mode
|
||||
return true;
|
||||
URL url = loader.getResource(name);
|
||||
if (url.getPath().contains("/build/libs")) {
|
||||
return true; // Source repository Gradle JavaExec task mode
|
||||
}
|
||||
return switch(url.getProtocol()) {
|
||||
case "file" -> true; // Eclipse run config mode (class files)
|
||||
case "jar" -> false; // Release mode (jar files)
|
||||
case "bundleresource" -> false; // GhidraDev Utility.jar access mode
|
||||
default -> true; // Unexpected protocol...assume development mode
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue