java.net.URLClassLoader.loadClass()方法的使用及代码示例

x33g5p2x  于2022-01-31 转载在 其他  
字(10.7k)|赞(0)|评价(0)|浏览(125)

本文整理了Java中java.net.URLClassLoader.loadClass()方法的一些代码示例,展示了URLClassLoader.loadClass()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。URLClassLoader.loadClass()方法的具体详情如下:
包路径:java.net.URLClassLoader
类名称:URLClassLoader
方法名:loadClass

URLClassLoader.loadClass介绍

暂无

代码示例

代码示例来源:origin: Alluxio/alluxio

@Override
 public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
  try {
   return super.loadClass(name, resolve);
  } catch (ClassNotFoundException e) {
   return mDefaultClassloader.loadClass(name, resolve);
  }
 }
}

代码示例来源:origin: gocd/gocd

private Class<?> loadClass(File sourceJar, String classNameManifestKey, String libDir, String classNameToLoad) throws ClassNotFoundException {
  Predicate<JarEntry> filter = jarEntry -> jarEntry.getName().startsWith(libDir + "/") && jarEntry.getName().endsWith(".jar");
  this.urlClassLoader = JarUtil.getClassLoaderFromJar(sourceJar, filter, getDepsDir(), DefaultAgentLauncherCreatorImpl.class.getClassLoader(), AgentLauncher.class, AgentLaunchDescriptor.class);
  LOG.info("Attempting to load {} as specified by manifest key {}", classNameToLoad, classNameManifestKey);
  return this.urlClassLoader.loadClass(classNameToLoad);
}

代码示例来源:origin: spring-projects/spring-loaded

@Override
protected synchronized Class<?> loadClass(String arg0, boolean arg1) throws ClassNotFoundException {
  //		System.out.println(this+" being asked to load class "+arg0+","+arg1);
  return super.loadClass(arg0, arg1);
}

代码示例来源:origin: spring-projects/spring-loaded

@Override
public Class<?> loadClass(String name) throws ClassNotFoundException {
  //		System.out.println(this + " loading "+name);
  return super.loadClass(name);
}

代码示例来源:origin: gocd/gocd

public int run(String launcherVersion, String launcherMd5, ServerUrlGenerator urlGenerator, Map<String, String> environmentVariables, Map context) {
  String agentProcessParentClassName = JarUtil.getManifestKey(Downloader.AGENT_BINARY_JAR, GO_AGENT_BOOTSTRAP_CLASS);
  String tempDirSuffix = new BigInteger(64, new SecureRandom()).toString(16) + "-" + Downloader.AGENT_BINARY_JAR;
  File tempDir = new File(FileUtil.TMP_PARENT_DIR, "deps-" + tempDirSuffix);
  try {
    try (URLClassLoader urlClassLoader = JarUtil.getClassLoaderFromJar(Downloader.AGENT_BINARY_JAR, jarEntryFilter(), tempDir, this.getClass().getClassLoader())) {
      Class<?> aClass = urlClassLoader.loadClass(agentProcessParentClassName);
      AgentProcessParent agentProcessParent = (AgentProcessParent) aClass.getDeclaredConstructor().newInstance();
      return agentProcessParent.run(launcherVersion, launcherMd5, urlGenerator, environmentVariables, context);
    } catch (ReflectiveOperationException | IOException e) {
      throw new RuntimeException(e);
    }
  } finally {
    FileUtils.deleteQuietly(tempDir);
  }
}

代码示例来源:origin: apache/flink

@Override
  public Class<?> loadClass(String name) throws ClassNotFoundException {
    if (name.startsWith("org.apache.hadoop")) {
      throw new ClassNotFoundException(name);
    }
    else if (name.startsWith("org.apache.log4j")) {
      return properParent.loadClass(name);
    }
    else {
      return super.loadClass(name);
    }
  }
}

代码示例来源:origin: google/guava

@Override
 public Class<?> loadClass(String name) throws ClassNotFoundException {
  if (name.startsWith(concurrentPackage)
    // Use other classloader for ListenableFuture, so that the objects can interact
    && !ListenableFuture.class.getName().equals(name)) {
   synchronized (loadedClasses) {
    Class<?> toReturn = loadedClasses.get(name);
    if (toReturn == null) {
     toReturn = super.findClass(name);
     loadedClasses.put(name, toReturn);
    }
    return toReturn;
   }
  }
  return super.loadClass(name);
 }
};

代码示例来源:origin: apache/ignite

/** {@inheritDoc} */
@Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
  if (excludeClassNames.contains(name))
    throw new ClassNotFoundException(name);
  return super.loadClass(name, resolve);
}

代码示例来源:origin: google/guava

@Override
 public Class<?> loadClass(String name) throws ClassNotFoundException {
  if (blocklist.contains(name)) {
   throw new ClassNotFoundException("I'm sorry Dave, I'm afraid I can't do that.");
  }
  if (name.startsWith(concurrentPackage)) {
   Class<?> c = findLoadedClass(name);
   if (c == null) {
    return super.findClass(name);
   }
   return c;
  }
  return super.loadClass(name);
 }
};

代码示例来源:origin: google/guava

@Override
 public Class<?> loadClass(String name) throws ClassNotFoundException {
  if (disallowedClassNames.contains(name)) {
   throw new ClassNotFoundException("I'm sorry Dave, I'm afraid I can't do that.");
  }
  if (name.startsWith(concurrentPackage)) {
   Class<?> c = findLoadedClass(name);
   if (c == null) {
    return super.findClass(name);
   }
   return c;
  }
  return super.loadClass(name);
 }
};

代码示例来源:origin: google/guava

@Override
 protected synchronized Class<?> loadClass(String name, boolean resolve)
   throws ClassNotFoundException {
  // Force Finalizer to load from this class loader, not its parent.
  if (name.equals(Finalizer.class.getName())) {
   Class<?> clazz = findClass(name);
   if (resolve) {
    resolveClass(clazz);
   }
   return clazz;
  }
  return super.loadClass(name, resolve);
 }
}

代码示例来源:origin: google/guava

oldClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(classReloader);
abstractFutureClass = classReloader.loadClass(AbstractFuture.class.getName());
settableFutureClass = classReloader.loadClass(SettableFuture.class.getName());

代码示例来源:origin: google/guava

private WeakReference<ClassLoader> doTestUnloadableInStaticFieldIfClosed() throws Exception {
 final ClassLoader myLoader = getClass().getClassLoader();
 URLClassLoader sepLoader = new URLClassLoader(getClassPathUrls(), myLoader.getParent());
 Class<?> frqC = FinalizableReferenceQueue.class;
 Class<?> sepFrqC = sepLoader.loadClass(frqC.getName());
 assertNotSame(frqC, sepFrqC);
 Class<?> sepFrqSystemLoaderC =
   sepLoader.loadClass(FinalizableReferenceQueue.SystemLoader.class.getName());
 Field disabled = sepFrqSystemLoaderC.getDeclaredField("disabled");
 disabled.setAccessible(true);
 disabled.set(null, true);
 Class<?> frqUserC = FrqUser.class;
 Class<?> sepFrqUserC = sepLoader.loadClass(frqUserC.getName());
 assertNotSame(frqUserC, sepFrqUserC);
 assertSame(sepLoader, sepFrqUserC.getClassLoader());
 Callable<?> sepFrqUser = (Callable<?>) sepFrqUserC.newInstance();
 WeakReference<?> finalizableWeakReference = (WeakReference<?>) sepFrqUser.call();
 GcFinalization.awaitClear(finalizableWeakReference);
 Field sepFrqUserFinalizedF = sepFrqUserC.getField("finalized");
 Semaphore finalizeCount = (Semaphore) sepFrqUserFinalizedF.get(null);
 boolean finalized = finalizeCount.tryAcquire(5, TimeUnit.SECONDS);
 assertTrue(finalized);
 Field sepFrqUserFrqF = sepFrqUserC.getField("frq");
 Closeable frq = (Closeable) sepFrqUserFrqF.get(null);
 frq.close();
 return new WeakReference<ClassLoader>(sepLoader);
}

代码示例来源:origin: google/guava

Class<?> sepFrqC = sepLoader.loadClass(frqC.getName());
assertNotSame(frqC, sepFrqC);
  sepLoader.loadClass(FinalizableReferenceQueue.SystemLoader.class.getName());
Field disabled = sepFrqSystemLoaderC.getDeclaredField("disabled");
disabled.setAccessible(true);
Class<?> sepFwrC = sepLoader.loadClass(MyFinalizableWeakReference.class.getName());
Constructor<?> sepFwrCons = sepFwrC.getConstructor(Object.class, sepFrqC);
Class<?> sepStopwatchC = sepLoader.loadClass(Stopwatch.class.getName());
assertSame(sepLoader, sepStopwatchC.getClassLoader());
AtomicReference<Object> sepStopwatchA =

代码示例来源:origin: Atmosphere/atmosphere

private Filter loadFilter(URLClassLoader urlC, String fClass) throws Exception {
  Filter f;
  try {
    f = config.framework().newClassInstance(Filter.class, (Class<Filter>) urlC.loadClass(fClass));
  } catch (NullPointerException ex) {
    // We failed to load the Filter, let's try directly.
    f = config.framework().newClassInstance(Filter.class, (Class<Filter>) IOUtils.loadClass(getClass(), fClass));
  }
  return f;
}

代码示例来源:origin: prestodb/presto

@Override
protected Class<?> loadClass(String name, boolean resolve)
    throws ClassNotFoundException
{
  // grab the magic lock
  synchronized (getClassLoadingLock(name)) {
    // Check if class is in the loaded classes cache
    Class<?> cachedClass = findLoadedClass(name);
    if (cachedClass != null) {
      return resolveClass(cachedClass, resolve);
    }
    // If this is an SPI class, only check SPI class loader
    if (isSpiClass(name)) {
      return resolveClass(spiClassLoader.loadClass(name), resolve);
    }
    // Look for class locally
    return super.loadClass(name, resolve);
  }
}

代码示例来源:origin: org.apache.logging.log4j/log4j-core

@Test
public void testFindInPackageFromVfsDirectoryURL() throws Exception {
  try (final URLClassLoader cl = ResolverUtilTest.compileAndCreateClassLoader("3")) {
    final ResolverUtil resolverUtil = new ResolverUtil();
    resolverUtil
        .setClassLoader(new SingleURLClassLoader(new URL("vfs:/" + ResolverUtilTest.WORK_DIR + "/resolverutil3/customplugin3/"), cl));
    resolverUtil.findInPackage(new PluginTest(), "customplugin3");
    assertEquals("Class not found in packages", 1, resolverUtil.getClasses().size());
    assertEquals("Unexpected class resolved", cl.loadClass("customplugin3.FixedString3Layout"),
        resolverUtil.getClasses().iterator().next());
  }
}

代码示例来源:origin: org.apache.logging.log4j/log4j-core

@Test
public void testFindInPackageFromVfsJarURL() throws Exception {
  try (final URLClassLoader cl = ResolverUtilTest.compileJarAndCreateClassLoader("4")) {
    final ResolverUtil resolverUtil = new ResolverUtil();
    resolverUtil.setClassLoader(new SingleURLClassLoader(
        new URL("vfs:/" + ResolverUtilTest.WORK_DIR + "/resolverutil4/customplugin4.jar/customplugin4/"), cl));
    resolverUtil.findInPackage(new PluginTest(), "customplugin4");
    assertEquals("Class not found in packages", 1, resolverUtil.getClasses().size());
    assertEquals("Unexpected class resolved", cl.loadClass("customplugin4.FixedString4Layout"),
        resolverUtil.getClasses().iterator().next());
  }
}

代码示例来源:origin: org.apache.logging.log4j/log4j-core

@Test
public void testFindInPackageFromJarPath() throws Exception {
  try (final URLClassLoader cl = compileJarAndCreateClassLoader("2")) {
    final ResolverUtil resolverUtil = new ResolverUtil();
    resolverUtil.setClassLoader(cl);
    resolverUtil.findInPackage(new PluginTest(), "customplugin2");
    assertEquals("Class not found in packages", 1, resolverUtil.getClasses().size());
    assertEquals("Unexpected class resolved", cl.loadClass("customplugin2.FixedString2Layout"),
        resolverUtil.getClasses().iterator().next());
  }
}

代码示例来源:origin: org.apache.logging.log4j/log4j-core

@Test
public void testFindInPackageFromDirectoryPath() throws Exception {
  try (final URLClassLoader cl = compileAndCreateClassLoader("1")) {
    final ResolverUtil resolverUtil = new ResolverUtil();
    resolverUtil.setClassLoader(cl);
    resolverUtil.findInPackage(new PluginTest(), "customplugin1");
    assertEquals("Class not found in packages", 1, resolverUtil.getClasses().size());
    assertEquals("Unexpected class resolved", cl.loadClass("customplugin1.FixedString1Layout"),
        resolverUtil.getClasses().iterator().next());
  }
}

相关文章