在我们的一个生产环境中,我们有一个混乱的结构,tomcat WEB-INF/具有配置和/用罐子放。
我们发现类目录有一个遵循包结构的目录,如下所示,示例:
com/test/A.class
在lib目录中,我们还有另一个打包了相同类的jar。
当我们发现重复处理正在发生时,真正的问题就被调查了,尽管不确定问题是否是因为这个。
实际的问题是,tomcat何时启动?是否会创建同一类的两个实例并进行并行处理?是否有可能,因为类目录和库目录都在类路径中。
它不是关于tomcat,而是类加载器。层次结构是BootstrapLoader(rt.jar)-
问题内容: 假设我已经使用Groovyc编译了Groovy脚本,该脚本已在文件系统中生成了一个或多个.class文件。如何从Java应用程序动态地将这些类添加到类路径中,以加载它们并调用它们的方法?目标是预编译Groovy脚本并将其存储到数据库中,以便可以从脚本的编译版本执行评估。 问题答案: 您可以创建URLClassLoader的实例以从目录加载新类: 第1 行将.class 创建到.clas
问题内容: 我有一个加载从源文件编译的类。但是,当我更改源文件,保存并重新编译它时,仍然会加载该类的第一个版本。 我想念什么?像newInstance之类的东西? 问题答案: 类加载器不能替换已经加载的类。将返回现有实例的引用。 您必须实例化一个新的类加载器,并使用它来加载新类。然后,如果要“替换”该类,则必须扔掉该类加载器并创建另一个新的类加载器。 针对您的评论:做类似的事情 该类加载器将使用“
JVM如何进行内部管理 如果在两个不同的用户定义的类装入器中装入相同版本的类装入? 2.如果在两个不同的用户定义类加载程序(相同的类名和包)中加载不同版本的类。如果JVM加载了将在我的应用程序中引用的两个类。 我们知道JVM在类、包 我想知道JVM内部如何处理这些情况。
问题内容: 我正在从事开源项目。截至目前,我在任何课程中都没有任何自定义设置。因此,请使用开源项目提供的所有jar文件。我的问题是,如果我修改一个Java文件,对其进行编译并将其打包为具有相同文件夹结构的新jar文件,那么在服务器启动或运行时是否会出现任何问题?如果不是,将调用哪个类文件(默认文件或我的自定义Java类文件)? 问题答案: 实际上,它取决于许多因素: 如果两个jar文件都位于同一C
我在android工作室工作,2.1.2。 我在两个活动之间有一个神秘角色转换异常。 在第一个活动中,我有这个ArrayList: 我将arraylist(parcellable)插入到bundle中,以便在另一个活动中发送: 在第二个活动中,我将此用于恢复ArrayList 现在按照 我什么都试过了,带和不带Bundle的发送,类输出结束输出都是一样的,为什么要这样铸造呢?那我该怎么解决?? 谢
我使用一个Android库,它要求我创建两个类,每个类继承自不同的类 (具有公共基类) 现在我有这个代码: 我必须复制这个类来创建一个扩展,即使我的两个类共享完全相同的代码。 我简化了示例的代码,但重复可能很重要 我决定将代码放在这两个类之外的静态方法中,并在类重写的方法中调用它们,但我认为必须有一种更干净的方法来做到这一点。 你能帮我解决这个问题吗? 和都继承自。