Package ghidra
Class GhidraClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
ghidra.GhidraClassLoader
- All Implemented Interfaces:
Closeable
,AutoCloseable
Custom Ghidra URL class loader which exposes the addURL method so we can add to the classpath
at runtime.
This class loader must be installed by setting the "java.system.class.loader" system property prior to launch (i.e., the JVM should be launched with the following argument: -Djava.system.class.loader=ghidra.GhidraClassLoader.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The classpath system property:java.class.path
static final String
The extensions classpath system property:java.class.path.ext
static final String
When 'true', this property will trigger the system to put each Extension module's lib jar files into theCP_EXT
property. -
Constructor Summary
ConstructorDescriptionGhidraClassLoader
(ClassLoader parent) This one-argument constructor is required for the JVM to successfully use this class loader via the java.system.class.loader system property. -
Method Summary
Methods inherited from class java.net.URLClassLoader
close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Field Details
-
ENABLE_RESTRICTED_EXTENSIONS_PROPERTY
When 'true', this property will trigger the system to put each Extension module's lib jar files into theCP_EXT
property.- See Also:
-
CP
The classpath system property:java.class.path
- See Also:
-
CP_EXT
The extensions classpath system property:java.class.path.ext
- See Also:
-
-
Constructor Details
-
GhidraClassLoader
This one-argument constructor is required for the JVM to successfully use this class loader via the java.system.class.loader system property.- Parameters:
parent
- The parent class loader for delegation
-
-
Method Details
-
getClasspath
Gets aList
containing the current classpath referenced by the given property name- Parameters:
propertyName
- The property name of the classpath to get- Returns:
- A
List
containing the current classpath referenced by the given property name
-
addURL
- Overrides:
addURL
in classURLClassLoader
-
addPath
Converts the specified path to aURL
and adds it to the classpath.- Parameters:
path
- The path to be added.- Returns:
- True if the path was successfully added; otherwise, false. Failure can occur if the path is not able to be converted to a URL.
- See Also:
-