org.codehaus.commons.compiler
Class AbstractJavaSourceClassLoader
java.lang.Object
java.lang.ClassLoader
org.codehaus.commons.compiler.AbstractJavaSourceClassLoader
- Direct Known Subclasses:
- JavaSourceClassLoader, JavaSourceClassLoader
public abstract class AbstractJavaSourceClassLoader
- extends ClassLoader
A ClassLoader that, unlike usual ClassLoaders, does not load byte code, but reads Java™ source
code and then scans, parses, compiles and loads it into the virtual machine.
As with any ClassLoader, it is not possible to "update" classes after they've been loaded. The way to
achieve this is to give up on the AbstractJavaSourceClassLoader and create a new one.
| Methods inherited from class java.lang.ClassLoader |
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
optionalProtectionDomainFactory
protected AbstractJavaSourceClassLoader.ProtectionDomainFactory optionalProtectionDomainFactory
- See Also:
ClassLoader.defineClass(String, byte[], int, int, ProtectionDomain)
AbstractJavaSourceClassLoader
public AbstractJavaSourceClassLoader()
AbstractJavaSourceClassLoader
public AbstractJavaSourceClassLoader(ClassLoader parentClassLoader)
setSourcePath
public abstract void setSourcePath(File[] sourcePath)
- Parameters:
sourcePath - The sequence of directories to search for Java™ source files
setSourceFileCharacterEncoding
public abstract void setSourceFileCharacterEncoding(String optionalCharacterEncoding)
- Parameters:
optionalCharacterEncoding - if null, use platform default encoding
setDebuggingInfo
public abstract void setDebuggingInfo(boolean lines,
boolean vars,
boolean source)
- Parameters:
lines - Whether line number debugging information should be generatedvars - Whether variables debugging information should be generatedsource - Whether source file debugging information should be generated
setProtectionDomainFactory
public final void setProtectionDomainFactory(AbstractJavaSourceClassLoader.ProtectionDomainFactory optionalProtectionDomainFactory)
- See Also:
ClassLoader.defineClass(String, byte[], int, int, ProtectionDomain)
main
public static void main(String[] args)
throws Exception
- Read Java™ source code for a given class name, scan, parse, compile and load it into the virtual machine,
and invoke its "main()" method with the given arguments.
Usage is as follows:
java AbstractJavaSourceClassLoader [ option ] ... class-name [ argument ] ...
option:
-sourcepath colon-separated-list-of-source-directories
-encoding character-encoding
-g Generate all debugging info
-g:none Generate no debugging info
-g:{source,lines,vars} Generate only some debugging info
- Throws:
Exception