草庐IT

java - 从不同类加载器加载的类访问静态方法

我有两个类(A和B)由不同的ClassLoaders加载.此外,我还有第三个类,它提供静态getter和setter方法。我希望下面的图片可以说明情况:Data类如下所示:publicclassData{privatestaticStringdata="";publicstaticvoidsetData(Stringd){data=d;}publicstaticStringgetData(){returndata;}}在类里面A,我想设置Data的静态值在B我想检索这个值。然而,在B我总是得到原始值(即"")。我对ClassLoader只有一个基本的了解s,所以我不太确定引擎盖下发生了

java - 在 Java 中,为什么 Exception 类需要在类加载器需要之前可用?

我正在开发一个动态加载JAR的应用程序,其中包含它使用的一堆类的定义。一切顺利,直到我trycatch动态加载的JAR中的异常派生类。以下片段显示了问题(DynamicJarLoader是实际加载JAR的类;TestClass和MyException都在外部JAR中):publicstaticvoidmain(String[]args){DynamicJarLoader.loadFile("../DynamicTestJar.jar");try{Stringfoo=newTestClass().testMethod("42");}catch(MyExceptione){}}当我尝试运行

java - ClassCastException 因为类加载器?

在使用类加载器时出现以下异常:Exceptioninthread"main"java.lang.ClassCastException:xxx.Singletoncannotbecasttoxxx.Singleton这是否意味着来自类加载器的实例不可转换为另一个类加载器的类?检查我的代码,由于类加载器,我能够在其中实例化3个单例,即使使用“”安全性也是如此。publicstaticvoidmain(String[]args)throwsException{URLbasePath=newURL("file:/myMavenPath/target/classes/");Objectinsta

java - 什么是 Java 中的隔离类加载器?

试图解决thisproblem时,我遇到了一些文章等提到“孤立的”类加载器。我无法通过Google搜索找到isolatedclassloader的定义,所以这个术语可能不是广为人知的行话,并且在不同的上下文中可能具有不同的含义。无论如何,Maven的surefire插件可以使用一个独立的ClassLoader:http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html还有以下引用答案之一anarticleexplaininghowtocreatean"isolated"ClassLo

java - 何时创建自定义类加载器?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。为什么您需要创建自定义类加载器?一个真实世界的例子会很棒!

java - 如何使用 -Xbootclasspath/p :path? 完成类加载

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我看到-Xbootclasspath/p:path被用于动态加载类,请您详细说明并提供示例。

java - 如何选择类的类加载器?

动机假设我们有一个如下所示的类加载层次结构:Bootstrap|System|Custom假设Custom类加载器用于加载类com.example.SomeClass。它检查System类加载器是否可以加载它,然后再次检查Bootstrap类加载器是否可以加载它。由于两者都不能,com.example.SomeClass由Custom类加载器加载。com.example.SomeClass所依赖的任何类都会经历同样的过程。我相信我理解这个过程。问题我不明白为什么Custom首先会尝试加载com.example.SomeClass。如何在Java应用程序中选择当前类加载器?

java - 使用自定义类加载器配置 org.apache.log4j.ConsoleAppender

我有一个java类,它在启动时基于javassist类加载器创建自定义类加载器,然后运行真正的程序类。我收到以下错误:log4j:ERRORA"org.apache.log4j.ConsoleAppender"objectisnotassignabletoa"org.apache.log4j.Appender"variable.log4j:ERRORTheclass"org.apache.log4j.Appender"wasloadedbylog4j:ERROR[javassist.Loader@6f97b10a]whereasobjectoftypelog4j:ERROR"org.a

Java 的类加载器与 jars-within-jars

我们有一个可执行JAR文件,有时包含其他JAR文件。(整个事情依赖于其他四个下载的JAR,骑在太空中部署的巨型海龟的背上。)在运行时,我们动态加载嵌套的JAR文件,执行以下操作://wearyinglyverboseerrorhandlingelidedURLnestedURL=the_main_system_classloader.getResource("path/to/nested.jar");Filetemp=File.createTempFile(....);//copyoutnestedURLcontentsintotemp,byteforbyteURLtempURL=te

Java 9.0 |类加载器::getResourceAsStream: NullPointerException

下面这段代码,我从“/resource”文件夹中的文件夹中获取我的文件,在Java8中对我来说工作正常://e.gfileName="folder0/file1.extension2"ClassLoaderclassLoader=ResourceLoader.class.getClassLoader();InputStreamin=classLoader.getResourceAsStream(fileName);Scannerscanner=newScanner(in,"UTF-8");在Java9中它不会,classLoader.getResourceAsStream(fileNa