问题标签 [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 回答
5296 浏览

java - Java:自动自定义类加载器

我的应用程序使用标准小部件工具包 (SWT) 作为它的 GUI。我的问题是 32 位 SWT 库不能在 64 位 JVM 上运行。但我不想让人们在获取软件时选择正确的架构。所以,我想捆绑32 位64 位库,并在运行时自动检测架构。我发现我可以像这样获得正确的 JVM 架构:

现在剩下的就是加载罐子了。但问题是,我发现的所有示例都要求您在使用之前手动加载该类。

所以我的问题是,是否可以“注册”我的类加载器,这样我就不必事先加载类?


更新: 我创建了自己的子类,URLClassLoader并使用命令行参数将其设置为默认类加载器-Djava.system.class.loader;但我收到此错误:

我认为LibraryLoader.<init>是指构造函数......但它在那里(public LibraryLoader(URI[] urls))。


更新 2:几乎就在那里,JVM 现在运行。我添加了这个构造函数以使其工作:

但是在使用addPath()( file:lib/jars/swt.jar) 添加罐子后,它只会产生一个NoClassDefFoundError. 是的,我仔细检查了该文件是否存在。

0 投票
3 回答
8506 浏览

java - 自定义 URLClassLoader,运行时 NoClassDefFoundError

我已经创建了自己的URLClassLoader,并将其设置为系统类加载器通过java.system.class.loader. 它已初始化,一切正常,但找不到我要加载的类。这是URLClassLoader

我已经确认 jar 存在,并且路径是正确的。这就是我在我的程序中调用它的方式:

这是我得到的例外(第 166 行是指我尝试创建新的行Point

我什至尝试像这样显式加载类:

这可能是什么原因造成的?它不应该“正常工作”吗?


更新:这是来自的重要代码MyProgram


更新 2:这是一个 SSCCE:http ://nucleussystems.com/files/myprogram.zip 。打电话java -Djava.system.class.loader=mp.LibraryLoader -jar myprogram.jar

0 投票
3 回答
941 浏览

java - 从加载的类中获取类的变量和方法。

我的场景:

一个类将使用 ClassLoader 从许多不同的类中加载。

如何从加载另一个类的类中获取方法和变量 - 从另一个类?即从一个我不知道其名称的类中获取方法和变量。

例子:

搜索了stackoverflow但没有运气:/

任何帮助表示赞赏:)。

麦克风。

0 投票
2 回答
242 浏览

java - 使用 Toolprovider 编译类并使用 ClassLoader 加载它们

我正在尝试加载在运行时生成编译的类。我可以用这段代码毫无问题地编译它们:

但我不明白如何加载我编译的类(或编译的地方)以供后用。我尝试了几件事,例如:

或者

没有成功(我不明白这些......)。你能帮我或举一个简单的例子来做这件事,这样我就可以发展它吗?

提前致谢。

0 投票
2 回答
1011 浏览

java - 签名的小程序使用带有安全问题的 URLClassLoader 加载签名的 jar 文件

我有一个签名的小程序。为了实现一些插件架构,我下载并存储到磁盘中包含特定类的 JAR 文件。

然后我用URLCLassLoader. 所以,现在我尝试从加载的类中调用一些方法,但我遇到了一个安全问题。

SecurityManager加载类时似乎无法检查“签名令牌” URLClassLoaded。有人知道如何解决这个问题吗?

非常感谢!

正在加载。

调用。

例外。

0 投票
1 回答
165 浏览

classloader - 无法从目录加载类。with jars while 可以在 jars 解压/解压时加载类

社区!如果你能帮助我解决我的问题,那就太好了。

我有一个自定义类加载器,它将成为java.system.class.loader- 它包含在哪里可以找到类的 URL。像这样:

然后我使用 -Djava.system.class.loader=TestSystemClassLoader eg.TestMain 运行 java(JDK6),其中 eg.TestMain' 主要:

让我生气的是,如果我解压/解压/解压 junit-4.8.2.jar - 那么 eg.TestMain 就可以了!

问题是 - 如何告诉 java(JDK6) 我希望整个目录位于类路径中,即位于目录中的任何文件。

提前致谢!

0 投票
6 回答
9235 浏览

java - 我如何“关闭”一个 ClassLoader?

我有一个案例,我需要在我的应用程序中创建很多类加载器,以便在用户提供的脚本运行时临时使一些代码可见。我URLClassLoader为此使用了一个,它工作得很好。

当脚本终止时,我想“卸载”或“关闭”类加载器以释放资源。

将对类加载器的引用设置为 是否足够null?我特别想知道我是否最终会用完文件句柄,因为额外的类在 JAR 文件中。

PS:必须使用 Java 5 及更高版本。是的,我知道...

0 投票
3 回答
5643 浏览

java - 如何在运行时加载 jar 文件的所有类?

根据这个问题,可以从 jar 文件中加载一个类:

如何加载jar 文件中包含的所有类?

0 投票
1 回答
418 浏览

java - URLClassLoader 究竟是如何工作的?爪哇

所以我知道如何使用 URLClassLoader,我知道它是做什么的,我想知道它到底是怎么做的。

基本上我在问:这是直播吗?还是它会临时下载并在本地读取课程?

因此,如果您在使用 URLClassLoader 加载的类中不断调用方法并且您随机丢失互联网,您的 java snip-it 会失败吗?

或者它是一次性的东西并下载它,如果你失去了互联网,那没关系,因为它在一开始就已经下载了它?

任何信息都会很棒,谢谢。

0 投票
2 回答
564 浏览

java - URLClassLoader 抛出未找到类定义异常

我有 3 个 Java 项目 A、B 和 C。B 就像 A 的附加组件。A 和 B 对于某些类都依赖于项目 C。

现在在项目 A 中,当我使用 URLClassLoader 时,如下所示:

现在使用这些 ucl 时,当我在 B 中调用一些方法时,它给了我No Class Definition found exception。这是针对 C 类的。

现在,当我使用 ClassLoader 时,如下所示:

当我调用 B 中的方法时,这很好用。我的问题:

1)当我以第一种方式执行时,正在使用哪个 ClassLoader?我阅读了 JavaDocs,但找不到任何可以解释的内容。
2)有没有办法获得一个特定于项目B的ClassLoader,我可以以某种方式使用它,这样我就不会遇到任何依赖问题?

谢谢你的帮助。