草庐IT

classLoader

全部标签

java - 如何从类型为 ="con"的 Eclipse classpathentry 中读取所有 JAR

我有一个包含所有类路径条目的项目的.classpath文件。现在它有以下条目-现在,从这个条目中,我想以编程方式通过java代码找到与这个库关联的所有jar吗?有没有办法读取所有jar? 最佳答案 "con"isacontainerlikeJRE它与您的应用程序中的父类加载器有关。这个容器定义了自己的类路径,可以在运行时读取:publicstaticvoidmain(String[]args){ClassLoaderclassLoader=ClassLoader.getSystemClassLoader();ClassLoaderp

java - 访问父/子类加载器之间的包私有(private)元素

在Java应用程序中,我声明了两个类,一个类(One)在ClassLoaderA中声明,另一个类(Two)在ClassLoaderB中声明。ClassLoaderA是B的parent。这两个类都具有相同的包(即:org.test)。虽然A是B的父类加载器,但我似乎无法从Two事件访问One的包私有(private)方法或变量,我得到一个IllegalAccessError异常。我了解包私有(private)可访问性基于包名称和类加载器。有没有办法重新关联One和Two,以便Two可以访问One的封装私有(private)元素?下面是证明这一点的测试:packageorg.test;pu

java - 按名称实例化 Java lambda 函数

我想在Java8中创建一个lambda函数,获取它的类名,然后从它的类名再次实例化该函数。这是我的尝试:importjava.util.function.Consumer;publicclassSimpleLambda{publicstaticvoidcall(StringaLambdaClassName,StringaArg)throwsException{Class>lClass=(Class>)Class.forName(aLambdaClassName);Consumernewlamba=lClass.newInstance();newlamba.accept(aArg);}p

java - 如何让 Weblogic 10 更喜欢 myApp.war :/WEB-INF/lib/without throwing VerifyErrors? 中的 jar

Weblogic类加载器似乎更喜欢系统库,而不是我war的WEB-INF/lib/中的库。我尝试在WEB-INF/weblogic.xml中设置以下内容,但没有成功:true这只会给我很多VerifyErrors:exceptionisjava.lang.VerifyError:(class:org/apache/xerces/parsers/AbstractSAXParser,method:parsesignature:(Lorg/xml/sax/InputSource;)V)Incompatibleobjectargumentforfunctioncallatorg.springf

Java ASM 字节码修改——改变方法体

我在jar里有一个类的方法,我想用我自己的方法交换它的主体。在这种情况下,我只想让方法在控制台上打印出“GOTIT”并返回true;我正在使用系统加载器来加载jar的类。我正在使用反射使系统类加载器能够通过字节码加载类。这部分似乎工作正常。我正在按照此处找到的方法替换示例进行操作:asm.ow2.org/current/asm-transformations.pdf。我的代码如下:publicclassMain{publicstaticvoidmain(String[]args){URL[]url=newURL[1];try{url[0]=newURL("file:////C://Us

java - PathMatchingResourcePatternResolver (spring) 用法

我正在使用:PathMatchingResourcePatternResolverrr=new...;rr.getResources("classpath*:**/*.class")从由目录和jar组成的类路径中获取所有类。该调用仅返回目录中的类;JAR文件将被忽略。以下调用从JAR返回类:rr.getResources("classpath*:org/**/*.class")是否可以在不知道基本包名称的情况下获取所有类? 最佳答案 它在documentation中提到当使用“classpath*:”前缀和ant样式模式时,至少需要

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 - 来自 Maven Mojo 的思考

我想使用GoogleReflections从我的Maven插件编译的项目中扫描类。但是默认情况下插件看不到项目的编译类。来自Maven3documentation我阅读:Pluginsthatneedtoloadclassesfromthecompile/runtime/testclasspathofaprojectneedtocreateacustomURLClassLoaderincombinationwiththemojoannotation@requiresDependencyResolution.至少可以说这有点含糊。基本上我需要一个类加载器的引用来加载已编译的项目类。我如何

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