问题标签 [urlclassloader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1254 浏览

java - Tomcat下URLClassLoader慢

我有一个包含大约 30 个 jar 的类路径目录。在我的普通控制台应用程序中,我正在创建一个我用指向所有这些 jarURLClassLoader的 s 列表初始化它的位置。URL

像这样一切正常,从我的URLClassLoader.

现在我采用这段代码并使其在 Tomcat 下运行,例如在 servlet 中的一个简单 Web 请求触发doGet()。令人惊讶的是,加载平均类所需的时间延长了 10-15 倍,使得整个初始化时间无法接受。该问题至少适用于 Tomcat 版本 6 和 7。

有任何想法吗?

0 投票
0 回答
400 浏览

java - 通过 jnlp 动态加载 jar 文件

我有一个正在运行和测试过的代码,我可以在其中加载一个 jar 文件和类路径的所有依赖项。

我现在需要的不是将 .jar 文件放在本地路径中,而是直接像我们通过调用 .jnlp 的按钮进入浏览器时执行的操作一样。

基本上是调用例如xpto/test.jnlp。将 File file = new File("D:\test\mytest.jar") 替换为 URLfile = new URL("xpto/test.jnlp")。

有可能的?如何调整上面的代码以通过 jnlp 执行并使用其余代码?

非常感谢提前问候

0 投票
3 回答
1647 浏览

java - URLClassLoader 将 Annotation 加载为 com.sun.$Proxy$27

我正在尝试动态加载一个java类。基本思想是,一个 jar 包含在运行时动态加载的模块。这就是我的做法(我知道这很老套,但没有其他方法可以将 jar 动态添加到已经存在的类加载器 afaik 中):

每个模块都使用@Module 注释进行注释。因此,为了获得有关该模块的更多信息,我尝试获取注释。问题是 foo 上的注释类型是 com.sun.$Proxy$27 而不是 com.coderunner.Module ,因此我得到一个

我不得不说我有点困惑这里发生了什么。我想做的事可能吗?如何?

编辑:我也许还应该提到我在 spring/spring-mvc 和 tomcat 环境中尝试这个。

0 投票
1 回答
274 浏览

java - Java URLClassLoader:选择要导入的类

目前我正在使用这条线来加载第 3 方 JAR 并将其包/类添加到我的程序中

这种方法的问题是加载了整个 JAR,这意味着所有包和所有类都被导入。如何告诉 URLClassLoaded 只加载几个选定的类?

一个例子是这样的 JAR 层次结构

  • 包 A
    • 1级
    • 2 级
  • 包 B
    • 1级
    • 2 级
    • 3 级
    • 4级

我想做一些类似“只导入 A.* 和 B.class2”的事情

0 投票
2 回答
13141 浏览

java - 在 Jar 文件中加载类并获取它的路径

我知道这里已经有很多类似的问题,但我无法从他们那里得到更聪明的答案。我想在 jar 文件中加载一个类,此时这没问题,但是当我想将路径传递给我自己的 ClassLoader 时,它会抛出一个异常,它找不到该类。是否可以使用绝对路径在 jar 中加载类?例如,
Class cls = loader.loadClass(/path/MyPlugin.jar/MyPlugin.class);

但是当我这样做时:

它打印出错误的。我尝试使用MyPlugin.jar!/MyPlugin.class或者MyPlugin.jar.jar!MyPlugin.class我有时在网上看到的,即使我真的不知道它是什么意思......

当我这样做时,它会找到类:

但是现在,我怎样才能接收到路径?类似的东西URL url = cl.getResource("MyPlugin");(它返回一个空值)

0 投票
0 回答
278 浏览

java - Java 让 jarclassloader/urlclassloader 使用 jar

我正在加载一个 .jar 文件JarClassLoader。jar文件加载后,我想删除该文件。一切正常,除了删除文件,因为该文件一直由 Java jvm 使用。如何解锁罐子?我已经关闭了所有我的inputstreams并关闭了urlclassloader.

谢谢你,里兹

0 投票
1 回答
2507 浏览

java - 为什么 URLClassLoader 不加载类?

我已下载该aspectJ.jar文件并将其解压缩到一个临时目录中(此 jar 文件仅用于测试目的)。我有以下代码:

存在一个具有类的文件JoinPoint,但我得到一个ClassNotFoundException. 有谁能够帮我?

0 投票
0 回答
752 浏览

scala - akka scala:URLClassLoader 导致演员不会失败 isAssignableFrom

我正在尝试从外部 jar 动态加载演员,然后将该演员启动到 ActorSystem 中。我想要一个用于加载演员的插件式架构。到目前为止,我尝试了以下代码:

这部分工作正常,但是如果我启动 ActorSystem 并尝试启动我的新演员:

我得到以下异常:

深入研究 Props.scala 文件,我发现错误是由使用 isAssignableFrom 引起的。我对其进行了一些测试,发现存在以下令人困惑的行为:

有没有办法解决这种行为?我猜这与系统类加载器和 URL 类加载器中定义的 Actor 类有关。我的插件尝试甚至可能吗?

哦,我正在使用带有 scala 2.10.2 的 akka 2.2.1

编辑

为了澄清一点,clazz.isInstanceOf[Class[Actor]]由于类型擦除,这对任何事情都是正确的。

0 投票
0 回答
245 浏览

java - 从非默认包加载类

当我尝试在运行时动态加载一个类,并且该类是在一个不是默认包的包中编译时,我有一个 ClassNotFound 异常。

示例:包名称:“型号”。类名:“Cup.class”。这是我的代码:

0 投票
1 回答
254 浏览

java - java.net.URLClassLoader 不添加类注释

在开发 ant - 任务以使用注释为项目自动生成一些 gui - 代码时,因为我更喜欢声明性方法,所以我使用java.net.URLClassLoader将类动态添加到我的类路径中。
在扫描类以查找类级别注释时,尽管
它们存在,但没有找到它们。
例如 ,有没有其他人遇到过这个问题并且可以提供解决方案? (将 URLClassLoader 子类化以在内部对 loadClass 的调用被视为 loadClass(Class clazz, true) 也不起作用)

@AutoGenerateGUI
class LoginBean


感谢https://stackoverflow.com/users/1103872/marko-topolnik 另外:检索动态加载的类的注解总是返回 com.sun.proxy.$Proxy[x],这样才能得到原来的注解类型我必须使用构造URLClassLoader 加载注释作为 com.sun.$Proxy$27迭代代理对象实现的接口。尽管这不是必需的,但确实其他解决方案(例如使用 instanceof)失败了。