forked from JavaTX/JavaCompilerCore
45 lines
1.4 KiB
Java
45 lines
1.4 KiB
Java
|
package de.dhbwstuttgart.environment;
|
|||
|
|
|||
|
import java.io.File;
|
|||
|
import java.net.MalformedURLException;
|
|||
|
import java.net.URL;
|
|||
|
import java.net.URLClassLoader;
|
|||
|
import java.util.ArrayList;
|
|||
|
import java.util.LinkedList;
|
|||
|
import java.util.List;
|
|||
|
import java.util.Set;
|
|||
|
|
|||
|
import org.reflections.Reflections;
|
|||
|
import org.reflections.scanners.ResourcesScanner;
|
|||
|
import org.reflections.scanners.SubTypesScanner;
|
|||
|
import org.reflections.util.ClasspathHelper;
|
|||
|
import org.reflections.util.ConfigurationBuilder;
|
|||
|
import org.reflections.util.FilterBuilder;
|
|||
|
|
|||
|
import de.dhbwstuttgart.exceptions.DebugException;
|
|||
|
|
|||
|
/**
|
|||
|
* Stellt die Java-Environment dar und speichert alle Binarys, Librarys und Sourcefiles im zu kompilierenden Projekt
|
|||
|
* Sie erstellt anhand dieser Informationen die JavaClassNameRegistry
|
|||
|
*/
|
|||
|
public class CompilationEnvironment {
|
|||
|
private final List<URL> librarys;
|
|||
|
|
|||
|
/**
|
|||
|
* Imitiert die Environment beim Aufruf des JavaCompilers auf einer Menge von java-Dateien
|
|||
|
* Die Environment enth<EFBFBD>lt automatisch die Java Standard Library
|
|||
|
* @param sourceFiles die zu kompilierenden Dateien
|
|||
|
*/
|
|||
|
public CompilationEnvironment(List<File> sourceFiles) {
|
|||
|
String bootClassPath = System.getProperty("sun.boot.class.path");
|
|||
|
librarys = new ArrayList<>();
|
|||
|
for(String path : bootClassPath.split(";")) {
|
|||
|
try {
|
|||
|
librarys.add(new URL("file:"+path));
|
|||
|
} catch (MalformedURLException e) {
|
|||
|
new DebugException("Fehler im Classpath auf diesem System");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|