classloader相关内容
我有一个自定义类加载器,以便桌面应用程序可以从我需要与之交谈的 AppServer 动态开始加载类.我们这样做是因为这样做所需的罐子数量是荒谬的(如果我们想运送它们).如果我们不在运行时从 AppServer 库动态加载类,我们也会遇到版本问题. 现在,我遇到了一个问题,我需要与两个不同的 AppServers 对话,并发现根据我首先加载的类,我可能会严重崩溃......有没有办法强制卸载类
..
为什么在 Java 中很难做到这一点?如果您想拥有任何类型的模块系统,您需要能够动态加载 JAR 文件.有人告诉我有一种方法可以通过编写自己的 ClassLoader 来实现,但是对于应该(至少在我看来)与使用 JAR 调用方法一样简单的事情,这需要做很多工作文件作为其参数. 对执行此操作的简单代码有什么建议吗? 解决方案 难的原因在于安全性.类加载器是不可变的;你不应该在运行时随意
..
这是我的示例抽象单例类: 公共抽象类 A {protected static 一个实例;公共静态一个 getInstance() {返回实例;}//...其余的抽象方法...} 这是具体的实现: public class B extends A {私人 B() { }静止的 {实例 = 新 B();}//...我的抽象方法的实现...} 不幸的是,我无法让 B 类中的静态代码执行,所以实例
..
假设我有这段代码,它使用一些输入(例如 URL 路径)通过反射来确定要运行的方法: //初始化map.put("/users/*", "viewUser");map.put("/users", "userIndex");//之后String methodName = map.get(path);方法 m = Handler.class.getMethod(methodName, ...);m.i
..
我的用例是使用 JDK 6 中提供的 ToolProvider 和 JavaCompiler 类从 Java 程序编译生成的源文件.源文件包含对上下文类加载器(它在 J2EE 容器中运行)中的类的引用,但不在系统类加载器.我的理解是默认情况下 ToolProvider 将使用系统类加载器创建 JavaCompiler 实例. 有没有办法指定 JavaCompiler 使用的类加载器?
..
如何在整个类路径中搜索带注释的类? 我正在做一个库,我想允许用户注释他们的类,所以当 Web 应用程序启动时,我需要扫描整个类路径以获取某些注释. 我正在考虑 Java EE 5 Web 服务或 EJB 的新功能.您使用 @WebService 或 @EJB 注释您的类,系统会在加载时找到这些类,以便远程访问它们. 解决方案 使用 org.springframework.con
..
我想知道 Class.getResource() 和 ClassLoader.getResource() 有什么区别? 编辑:我特别想知道文件/目录级别是否涉及任何缓存.如“目录列表是否缓存在类版本中?" AFAIK 以下应该基本上做同样的事情,但他们不是: getClass().getResource()getClass().getClassLoader().getResource
..
我有一个自定义类加载器,以便桌面应用程序可以从我需要与之交谈的 AppServer 动态开始加载类.我们这样做是因为这样做所需的罐子数量是荒谬的(如果我们想运送它们).如果我们不在运行时从 AppServer 库动态加载类,我们也会遇到版本问题. 现在,我遇到了一个问题,我需要与两个不同的 AppServers 对话,并发现根据我首先加载的类,我可能会严重崩溃......有没有办法强制卸载类
..
为什么在 Java 中很难做到这一点?如果您想拥有任何类型的模块系统,您需要能够动态加载 JAR 文件.有人告诉我有一种方法可以通过编写自己的 ClassLoader 来实现,但是对于应该(至少在我看来)与使用 JAR 调用方法一样简单的事情,这需要做很多工作文件作为其参数. 对执行此操作的简单代码有什么建议吗? 解决方案 难的原因在于安全性.类加载器是不可变的;你不应该在运行时随意
..
这是问题的简化版本: SomeClass c = (SomeClass) obj.getSomeClassParent() 并非总是如此,但有时会触发异常 org.somepackage.SomeClass 不能转换为 org.somepackage.SomeClass 这怎么可能?我想这与 JAI imageio 是本机 lib 的事实有关,但是中继怎么会发生这种情况?我可能错过了一
..
getResourceAsStream-方法返回 null. 对于下面的例子,我有一个 Eclipse 项目,目录结构如下: src\(源文件夹)主\(包)主程序res\(源文件夹)图片\标志.png 我正在阅读 Logo.png 如下: public static void main(String[] args) 抛出 IOException {尝试 (InputStream is
..
我有一个 java web start 应用程序,我需要从 jnlp 文件中禁用字节码验证. 这可以通过设置 JAVAWS_VM_ARGS="-noverify" 或设置 -Xverify:none 但documentation 这里说 web start 不支持添加这些参数jnlp 文件. 我试过这个:
..
问题和疑问:Java webstarted 应用程序在基文件夹而不是 ./lib 中查找其类. 正如在 Java Web Start 应用程序反复询问不存在的文件的类似问题中所建议的那样我已经转向关闭jar签名,排除安全问题,问题依旧. 下面是关于这个简单 java 程序的网络内容的简洁示例: public static void main(String[] args) {//TOD
..
我希望编写一个自定义类加载器,它将通过自定义网络加载一个 JAR 文件.最后,我需要处理的只是 JAR 文件的字节数组. 我无法将字节数组转储到文件系统并使用 URLClassLoader. 我的第一个计划是从流或字节数组创建一个 JarFile 对象,但它只支持一个 File 对象. 我已经写了一些使用 JarInputStream 的东西: public class Remot
..
WebSphere 最后是父级,父级在前.这是否符合 Java EE?是否所有符合 Java EE 5 的应用服务器都支持这一点? 解决方案 我做了我自己的研究(浏览了规范和一些博客),下面是我的想法 耳朵 规范没有定义或强制要求类加载器在 EAR 中应该如何工作.然而,它定义了 应该有每个线程上下文类加载器,用于运行时加载类 可能存在用于解析类的分层类加载机制(应用服
..
我有一个应用程序,它使用反射来实例化保存在某个目录中的代码:我创建了一个 URLClassLoader,然后使用提供的 URL 加载类;这工作正常.我试图将应用程序移植到 Applet.为了加载文本文件和图像,我将代码从使用相对路径改为使用 getResourceAsStream() ,效果很好.然而,对于类加载器,我仍然有一个 I/O 异常(在我将代码更改为使用流之前,我也曾用它来获取文本文件和
..
简介 我们在客户办公室的 Java 小程序存在一些问题.该小程序旨在通过定期截取屏幕截图来记录屏幕.它已经过签名,应该以提升的权限运行. 我们遇到的问题是: Java 小程序有时可能根本无法启动.如果 Java 控制台出现,它可能很快就会消失.感觉好像整个 JVM 都崩溃了. 如果 Java 小程序启动,它有时会在启动 10 秒后崩溃. 如果 Java 小程序启动,它几乎总是
..
我们有一个 Java 小程序,它在大多数客户端环境中都可以正常工作,主要是 Windows 7,但最近我们也被要求支持 Ubuntu 客户端. 问题在于,当在 Ubuntu 客户端(运行 Firefox 和本机安装的“IcedTEA"Java VM 1.7.0_75)上启动小程序时,我们会收到此异常: java.lang.VerifyError:不能从最终类继承在 java.lang.Cl
..
我开始问这个问题,然后在提交之前想出了答案.无论如何,我决定发布这个问题,以便其他遇到同样问题的人能够从我的错误中吸取教训. 我的小程序有问题(a JApplet 实际上) 无法实例化与小程序包含在同一个 jar 中的另一个类.我在 Java 控制台上看到的异常是: 线程“线程 applet-com.company.program.cm.hmi.MediatorApplet-1"中的异常
..
我需要一些帮助来处理以下情况. 我正在使用两个需要相同本机库 (.dll) 文件的小程序. 因此,当我从网页运行小程序时,第一次小程序将 dll 加载到小程序类加载器中.它工作正常.但是当第二个小程序尝试加载相同的 dll 时,它给了我一个异常,说 “加载 win32com 时出错:java.lang.UnsatisfiedLinkError:本机库 C:\WINDOWS\system
..