classloader相关内容

在 Eclipse 插件中使用时反射库不起作用

我使用 Reflections 库开发了一个应用程序,用于查询所有具有特定属性的类注解.在我决定从我的应用程序创建一个 Eclipse 插件之前,一切都像魅力一样工作.然后反射停止工作. 鉴于我的应用程序在不是 Eclipse 插件的一部分时运行良好,我认为这应该是类加载器问题.因此,我将插件激活器类的类加载器、上下文类加载器以及我能想象到的所有其他类加载器添加到我的 Reflections ..
发布时间:2022-01-16 12:53:05 Java开发

JVM 什么时候加载类?

假设我有以下课程: 类调用者{公共无效createSomething(){新的东西();}} 将执行此行: static void main() {类clazz = Caller.class;} 导致 JVM 加载类 Something 还是类加载延迟到方法 createSomething() 被调用? 解决方案 仅当您需要有关该类的信息时才加载该类. 公共类Somethi ..
发布时间:2022-01-16 12:21:48 Java开发

在运行时更新 JAR

假设 jar 在 JVM 中运行,是否可以卸载当前运行的 Jar 并将其从系统中删除.下载新版本并将其重命名为与上一个 Jar 相同的名称,然后初始化新 Jar,从而在 JVM 中创建 Jar 的无缝更新.甚至可以指示 JVM 执行此操作吗?是否可以在运行时更新 Jar? 解决方案 这是我以前见过很多次的事情(我自己也做过).我写了一些可能出现的问题/解决方案. 如果您覆盖了稍后将使 ..
发布时间:2022-01-16 12:13:17 Java开发

ClassCastException 因为类加载器?

在使用类加载器时,我遇到了以下异常: 线程“main"中的异常 java.lang.ClassCastException: xxx.Singleton 不能转换为 xxx.Singleton 这是否意味着来自类加载器的实例不能转换为另一个类加载器的类? 检查我的代码,感谢类加载器,我可以在其中实例化 3 个单例,即使使用“"安全性也是如此. public static void mai ..
发布时间:2022-01-16 12:00:55 Java开发

Java 详细类加载

我正在尝试列出 Java 类加载器加载我的类的顺序.如果我使用 -verbose 参数,它将列出它加载的每个接口/类,包括大量接口,如可序列化、异常等.有没有办法调整这个输出,所以它只显示哪些类是加载在我的主方法定义的类中? 解决方案 我想你最好的办法是做以下事情: 在您的 main 方法开始后和结束之前输出一些固定文本. 将 verbose 输出通过管道传输到文件中 使用 le ..
发布时间:2022-01-16 11:59:31 Java开发

在 jar 启动时预加载 java 类/库?

在对服务器的第一次 RPC 调用期间发生超时,但 subsequest 请求成功.服务器响应超时,因为在第一次调用时它会加载处理请求所需的库.由于此延迟,一些客户端超时.虽然可能会增加客户端的超时延迟,但我想尽量减少类加载对应用程序响应能力的影响. 您将如何预加载 Java 类文件,以便在首次运行应用程序的 .jar 文件时,类加载不会在第一次调用时引入延迟? 解决方案 您可以在服务 ..
发布时间:2022-01-16 11:58:26 Java开发

什么时候执行一个类的静态块?

我有 2 个罐子,我们称它们为 a.jar 和 b.jar. b.jar 依赖于 a.jar. 在一个.jar 中,我定义了一个类,我们称之为StaticClass.在 StaticClass 中,我定义了一个静态块,调用了一个名为“init"的方法: 公共类静态类{静止的 {在里面();}公共无效静态初始化(){//在这里做一些初始化}} 在 b.jar 中,我有一个 main, ..
发布时间:2022-01-16 11:47:53 Java开发

JVM 标志 CMSClassUnloadingEnabled 实际上是做什么的?

除了一些非常模糊的高级定义,例如“摆脱你的 PermGen 问题"(它没有,顺便说一句). 我查看了 Sun/Oracle 的网站,甚至查看了 选项列表 实际上并没有说明它的作用. 根据标志的名称,我猜测 CMS 垃圾收集器默认情况下不会卸载类,并且此标志将其打开 - 但我不能确定. 解决方案 更新 此答案与 Java 5-7 相关,Java 8 已修复此问题:https:// ..
发布时间:2022-01-16 11:45:26 Java开发

ThreadLocal 垃圾回收

来自 javadoc 只要线程处于活动状态且 ThreadLocal 实例可访问,每个线程都持有对其线程局部变量副本的隐式引用;在线程消失后,它的所有线程本地实例副本都将受到垃圾回收(除非存在对这些副本的其他引用). 由此看来,由 ThreadLocal 变量引用的对象似乎只有在线程死亡时才会被垃圾收集.但是,如果 ThreadLocal 变量 a 不再被引用并成为垃圾回收的对象怎么办 ..
发布时间:2022-01-16 10:23:04 Java开发

何时以及如何将 java 类加载器标记为垃圾收集?

我们正在创建多个子类加载器,以将多个子应用程序加载到 Java 应用程序“容器"中,对热部署进行原型设计.当特定类加载器的类路径发生更改(即添加、删除、更新 jar)时,旧的类加载器将被丢弃(未引用),并为新的 jar 类路径创建一个新的类加载器. 更新类路径后,触发热部署,我们进行了堆转储.堆转储(使用内存分析器)表明旧的类加载器没有被垃圾收集.父类加载器中的某些类正在缓存旧的类加载器.调 ..
发布时间:2022-01-16 09:53:10 Java开发

静态引用被清除——如果未使用,Android 是否会在运行时卸载类?

我有一个关于类加载/垃圾收集如何在 Android 中工作的问题.我们已经多次偶然发现这个问题,据我所知,Android 在这里的行为与普通 JVM 不同. 问题是这样的:我们目前正在尝试减少应用程序中的单例类,转而支持单个根工厂单例,其唯一目的是管理其他管理器类.如果你愿意的话,一个顶级经理.这使我们无需选择完整的 DI 解决方案即可轻松替换测试中的实现,因为所有活动和服务共享对该根工厂的 ..
发布时间:2022-01-16 09:47:54 Java开发

java.lang.LinkageError: ClassCastException

我确实遇到了一个非常烦人的 TestNG 和 RESTeasy 问题. 我确实有一个类针对使用 RESTeasy 框架公开自身的 API 类运行多个测试. 但是,如果我让测试使用 maven (mvn test) 运行,则会出现以下异常: java.lang.LinkageError: ClassCastException: 试图 castjar:file:/C:/Users/rit ..
发布时间:2022-01-14 13:05:03 Java开发

URLClassLoader 和包私有方法的可访问性

我有一个类 Formula,位于包 javaapplication4 中,我使用 URLClassLoader 加载它.但是,当我从位于同一包中的另一个类 Test1 调用它时,我无法访问其具有默认访问修饰符的方法(我可以访问公共方法). 我得到以下异常: java.lang.IllegalAccessException:类 javaapplication4.Test1 无法访问带有修 ..
发布时间:2022-01-13 16:46:45 Java开发

在 EAP 6.4.0 中使用 JPA 2.1

我一直在寻找解决这个问题的方法,但没有成功. 我们正在将应用程序迁移到 EAP 6.4.0,而我们的应用程序依赖于 JPA 2.1.但是,JBoss 是 Java EE 6 服务器,因此以模块的形式包含 JPA 2.0. 我尝试将 JPA API jar 直接包含在我的 WEB-INF/lib 目录中,认为类加载器更喜欢这个而不是系统中的那个. 我试图在我的耳朵中包含一个 jbo ..
发布时间:2022-01-07 12:15:29 其他开发

JBoss5 中的 XPath 类解析

我很难弄清楚问题出在哪里,所以我发布了这篇文章,希望其他人可能在其他地方发现了类似的东西,并愿意分享他们的见解. 我使用的是 JBoss 5.0.1.GA 应用程序服务器,它运行在 Sun Java 1.6.0-13 JDK 之上.对于生成的 Web 服务中的 WAR 文件,我使用了 Axis2 1.4 WS 引擎,其 JAR 文件由 Eclipse Galileo 插入到项目的 WEB-I ..
发布时间:2022-01-07 12:07:37 Java开发

JBoss 作用域类加载

我想在耳朵内使用最新的hibernate版本,而不用升级服务器上的jar.我正在按照此处给出的说明进行操作 - http://jaitechwriteups.blogspot.com/2008/08/how-to-upgrade-hibernate-in-jboss.html. 然而,现在的问题是应用程序没有使用位于部署文件夹中的 jboss-local-jdbc.rar. 2009-07 ..
发布时间:2022-01-07 12:07:07 其他开发

JBoss 和不同版本的 Hibernate

我们使用的是 JBoss 4.2.3,而 JBoss 4.2.3 又附带 Hibernate 3.2.1.ga 版.我想使用支持 JPA 2.0 的 Hibernate 3.5.1-FINAL.我一直试图通过将我自己的休眠 jars 放在我的 WEB-INF/lib 文件夹中并在 jboss-web.xml 中为我的 WAR 创建我自己的类加载器来完成这项工作 com.moo.f ..
发布时间:2022-01-07 12:05:04 Java开发