本文整理了Java中java.net.URLClassLoader.<init>()
方法的一些代码示例,展示了URLClassLoader.<init>()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。URLClassLoader.<init>()
方法的具体详情如下:
包路径:java.net.URLClassLoader
类名称:URLClassLoader
方法名:<init>
[英]Constructs a new URLClassLoader instance. The newly created instance will have the system ClassLoader as its parent. URLs that end with "/" are assumed to be directories, otherwise they are assumed to be JAR files.
[中]构造一个新的URLClassLoader实例。新创建的实例将把系统类加载器作为其父类。以“/”结尾的URL被假定为目录,否则它们被假定为JAR文件。
代码示例来源:origin: joelittlejohn/jsonschema2pojo
@Override
public ClassLoader run() {
return new URLClassLoader(classpathUrls.toArray(new URL[classpathUrls.size()]), parent);
}
});
代码示例来源:origin: stackoverflow.com
URL[] url={new URL("file://foo")};
URLClassLoader loader = new URLClassLoader(url);
代码示例来源:origin: eclipse-vertx/vert.x
/**
* Creates a classloader respecting the classpath option.
*
* @return the classloader.
*/
protected synchronized ClassLoader createClassloader() {
URL[] urls = classpath.stream().map(path -> {
File file = new File(path);
try {
return file.toURI().toURL();
} catch (MalformedURLException e) {
throw new IllegalStateException(e);
}
}).toArray(URL[]::new);
return new URLClassLoader(urls, this.getClass().getClassLoader());
}
代码示例来源:origin: btraceio/btrace
public CompilerClassWriter(String classPath, PrintWriter perr) {
super(ClassWriter.COMPUTE_FRAMES);
List<URL> urls = new ArrayList<>();
for(String e : classPath.split(File.pathSeparator)) {
File f = new File(e);
try {
urls.add(f.toURI().toURL());
} catch (MalformedURLException ex) {
perr.printf("%s is not a valid classpath entry\n", e);
}
}
cl = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader());
}
代码示例来源:origin: apache/hive
/**
* Add new elements to the classpath.
*
* @param newPaths
* Array of classpath elements
*/
public static ClassLoader addToClassPath(ClassLoader cloader, String[] newPaths) throws Exception {
URLClassLoader loader = (URLClassLoader) cloader;
List<URL> curPath = Arrays.asList(loader.getURLs());
ArrayList<URL> newPath = new ArrayList<>(curPath.size());
// get a list with the current classpath components
for (URL onePath : curPath) {
newPath.add(onePath);
}
curPath = newPath;
for (String onestr : newPaths) {
URL oneurl = urlFromPathString(onestr);
if (oneurl != null && !curPath.contains(oneurl)) {
curPath.add(oneurl);
}
}
return new URLClassLoader(curPath.toArray(new URL[0]), loader);
}
代码示例来源:origin: spring-projects/spring-framework
/**
* Create a parent ClassLoader for Groovy to use as parent ClassLoader
* when loading and compiling templates.
*/
protected ClassLoader createTemplateClassLoader() throws IOException {
String[] paths = StringUtils.commaDelimitedListToStringArray(getResourceLoaderPath());
List<URL> urls = new ArrayList<>();
for (String path : paths) {
Resource[] resources = getApplicationContext().getResources(path);
if (resources.length > 0) {
for (Resource resource : resources) {
if (resource.exists()) {
urls.add(resource.getURL());
}
}
}
}
ClassLoader classLoader = getApplicationContext().getClassLoader();
Assert.state(classLoader != null, "No ClassLoader");
return (!urls.isEmpty() ? new URLClassLoader(urls.toArray(new URL[0]), classLoader) : classLoader);
}
代码示例来源:origin: apache/avro
protected URLClassLoader createClassLoader() throws DependencyResolutionRequiredException, MalformedURLException {
List<URL> urls = appendElements(project.getRuntimeClasspathElements());
urls.addAll(appendElements(project.getTestClasspathElements()));
return new URLClassLoader(urls.toArray(new URL[urls.size()]),
Thread.currentThread().getContextClassLoader());
}
代码示例来源:origin: google/guava
@AndroidIncompatible // Android forbids null parent ClassLoader
public void testClassPathEntries_notURLClassLoader_withParentAndGrandParent() throws Exception {
URL url1 = new URL("file:/a");
URL url2 = new URL("file:/b");
URLClassLoader grandParent = new URLClassLoader(new URL[] {url1}, null);
URLClassLoader parent = new URLClassLoader(new URL[] {url2}, grandParent);
assertThat(ClassPath.Scanner.getClassPathEntries(new ClassLoader(parent) {}))
.containsExactly(new File("/a"), grandParent, new File("/b"), parent);
}
代码示例来源:origin: gocd/gocd
private void run() {
Handler.init();
try (JarFile jarFile = new JarFile(currentJarFile())) {
String mainClassName = mainClassName(jarFile);
List<URL> jarsInJar = jarFile.stream()
.filter(FIND_JAR_FILES_UNDER_LIB_FOLDER)
.map(jarEntry -> Handler.toOneJarUrl(jarEntry.getName()))
.collect(Collectors.toList());
List<URL> urls = new ArrayList<>();
urls.addAll(additionalJarsInLibsDirectoryInCWD());
urls.addAll(jarsInJar);
ClassLoader jcl = new URLClassLoader(urls.toArray(new URL[0]), getClass().getClassLoader());
Thread.currentThread().setContextClassLoader(jcl);
Class<?> mainClass = jcl.loadClass(mainClassName);
mainClass.getMethod("main", String[].class).invoke(null, new Object[]{args});
} catch (IOException | ReflectiveOperationException e) {
e.printStackTrace();
System.exit(1);
}
}
代码示例来源:origin: stackoverflow.com
ClassLoader currentThreadClassLoader
= Thread.currentThread().getContextClassLoader();
// Add the conf dir to the classpath
// Chain the current thread classloader
URLClassLoader urlClassLoader
= new URLClassLoader(new URL[]{new File("mtFile").toURL()},
currentThreadClassLoader);
// Replace the thread classloader - assumes
// you have permissions to do so
Thread.currentThread().setContextClassLoader(urlClassLoader);
代码示例来源:origin: line/armeria
static WebAppContext newWebAppContext() throws MalformedURLException {
final WebAppContext handler = new WebAppContext();
handler.setContextPath("/");
handler.setBaseResource(Resource.newResource(webAppRoot()));
handler.setClassLoader(new URLClassLoader(
new URL[] {
Resource.newResource(new File(webAppRoot(),
"WEB-INF" + File.separatorChar +
"lib" + File.separatorChar +
"hello.jar")).getURI().toURL()
},
JettyService.class.getClassLoader()));
handler.addBean(new ServletContainerInitializersStarter(handler), true);
handler.setAttribute(
"org.eclipse.jetty.containerInitializers",
Collections.singletonList(new ContainerInitializer(new JettyJasperInitializer(), null)));
return handler;
}
代码示例来源:origin: apache/hive
public static void addJarToContextLoader(File jar) throws MalformedURLException {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if (loader instanceof MutableURLClassLoader) {
((MutableURLClassLoader) loader).addURL(jar.toURI().toURL());
} else {
URLClassLoader newLoader =
new URLClassLoader(new URL[]{jar.toURI().toURL()}, loader);
Thread.currentThread().setContextClassLoader(newLoader);
}
}
代码示例来源:origin: hibernate/hibernate-orm
private ClassLoader toClassLoader(FileCollection runtimeClasspath) {
List<URL> urls = new ArrayList<URL>();
for ( File file : runtimeClasspath ) {
try {
urls.add( file.toURI().toURL() );
logger.debug( "Adding classpath entry for " + file.getAbsolutePath() );
}
catch (MalformedURLException e) {
throw new GradleException( "Unable to resolve classpath entry to URL : " + file.getAbsolutePath(), e );
}
}
return new URLClassLoader( urls.toArray( new URL[urls.size()] ), Enhancer.class.getClassLoader() );
}
代码示例来源:origin: apache/incubator-druid
public Class<TBase> getThriftClass()
throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException
{
final Class<TBase> thrift;
if (jarPath != null) {
File jar = new File(jarPath);
URLClassLoader child = new URLClassLoader(
new URL[]{jar.toURI().toURL()},
this.getClass().getClassLoader()
);
thrift = (Class<TBase>) Class.forName(thriftClassName, true, child);
} else {
thrift = (Class<TBase>) Class.forName(thriftClassName);
}
thrift.newInstance();
return thrift;
}
代码示例来源:origin: apache/hive
/**
* Add new elements to the classpath.
*
* @param newPaths Map of classpath elements and corresponding timestamp
* @return locally accessible files corresponding to the newPaths
*/
public static List<String> addToClassPath(Map<String, Long> newPaths, Configuration conf,
File localTmpDir) throws Exception {
URLClassLoader loader = (URLClassLoader) Thread.currentThread().getContextClassLoader();
List<URL> curPath = Lists.newArrayList(loader.getURLs());
List<String> localNewPaths = new ArrayList<>();
boolean newPathAdded = false;
for (Map.Entry<String, Long> entry : newPaths.entrySet()) {
URL newUrl = urlFromPathString(entry.getKey(), entry.getValue(), conf, localTmpDir);
localNewPaths.add(newUrl.toString());
if (newUrl != null && !curPath.contains(newUrl)) {
curPath.add(newUrl);
LOG.info("Added jar[" + newUrl + "] to classpath.");
newPathAdded = true;
}
}
if (newPathAdded) {
URLClassLoader newLoader =
new URLClassLoader(curPath.toArray(new URL[curPath.size()]), loader);
Thread.currentThread().setContextClassLoader(newLoader);
}
return localNewPaths;
}
代码示例来源:origin: org.springframework/spring-webmvc
/**
* Create a parent ClassLoader for Groovy to use as parent ClassLoader
* when loading and compiling templates.
*/
protected ClassLoader createTemplateClassLoader() throws IOException {
String[] paths = StringUtils.commaDelimitedListToStringArray(getResourceLoaderPath());
List<URL> urls = new ArrayList<>();
for (String path : paths) {
Resource[] resources = getApplicationContext().getResources(path);
if (resources.length > 0) {
for (Resource resource : resources) {
if (resource.exists()) {
urls.add(resource.getURL());
}
}
}
}
ClassLoader classLoader = getApplicationContext().getClassLoader();
Assert.state(classLoader != null, "No ClassLoader");
return (!urls.isEmpty() ? new URLClassLoader(urls.toArray(new URL[0]), classLoader) : classLoader);
}
代码示例来源:origin: jshiell/checkstyle-idea
public ClassLoader build(final Module baseModule) {
if (baseModule == null) {
return getClass().getClassLoader();
}
final Project project = baseModule.getProject();
final List<URL> outputPaths = new ArrayList<>();
final Set<Module> transitiveDependencies = new HashSet<>();
ModuleUtil.getDependencies(baseModule, transitiveDependencies);
for (Module moduleInScope : transitiveDependencies) {
if (LOG.isDebugEnabled()) {
LOG.debug("Adding module to classpath: " + moduleInScope.getName());
}
outputPaths.addAll(ModulePaths.compilerOutputPathsFor(moduleInScope));
outputPaths.addAll(ModulePaths.libraryPathsFor(moduleInScope));
}
if (LOG.isDebugEnabled()) {
LOG.debug("Creating class-loader with URLs: " + outputPaths);
}
URL[] effectiveClasspath = outputPaths.toArray(new URL[outputPaths.size()]);
if (wantsCopyLibs()) {
final Optional<File> tempDir = new TempDirProvider().forCopiedLibraries(project);
if (tempDir.isPresent()) {
final Path t = Paths.get(tempDir.get().toURI());
effectiveClasspath = new ClasspathStabilizer(project, t).stabilize(outputPaths);
}
}
return new URLClassLoader(effectiveClasspath, getClass().getClassLoader());
}
代码示例来源:origin: joelittlejohn/jsonschema2pojo
@Override
public ClassLoader run() {
return new URLClassLoader(classpathUrls.toArray(new URL[classpathUrls.size()]), parentClassloader);
}
});
代码示例来源:origin: google/guava
@AndroidIncompatible // Android forbids null parent ClassLoader
public void testClassPathEntries_duplicateUri_parentWins() throws Exception {
URL url = new URL("file:/a");
URLClassLoader parent = new URLClassLoader(new URL[] {url}, null);
URLClassLoader child = new URLClassLoader(new URL[] {url}, parent) {};
assertThat(ClassPath.Scanner.getClassPathEntries(child))
.containsExactly(new File("/a"), parent);
}
代码示例来源:origin: apache/nifi
/**
*
*/
private static boolean isConfigResolvable(String configPath, File libDirPathFile) {
List<URL> urls = new ArrayList<>();
URLClassLoader parentLoader = (URLClassLoader) SpringContextProcessor.class.getClassLoader();
urls.addAll(Arrays.asList(parentLoader.getURLs()));
urls.addAll(SpringContextFactory.gatherAdditionalClassPathUrls(libDirPathFile.getAbsolutePath()));
boolean resolvable = false;
try (URLClassLoader throwawayCl = new URLClassLoader(urls.toArray(new URL[] {}), null)) {
resolvable = throwawayCl.findResource(configPath) != null;
} catch (IOException e) {
// ignore since it can only happen on CL.close()
}
return resolvable;
}
}
内容来源于网络,如有侵权,请联系作者删除!