jjzjj

classloading

全部标签

java - ClassLoader.defineClass 抛出的 ClassCircularityError

我正在使用自定义类加载器加载类。在大多数情况下,一切正常,但有时当我加载特别复杂的项目/库时,我会遇到一个奇怪的错误:Exceptioninthread"main"java.lang.ClassCircularityError:org/apache/commons/codec/binary/Hexatjava.lang.ClassLoader.defineClass1(NativeMethod)atjava.lang.ClassLoader.defineClassCond(ClassLoader.java:632)atjava.lang.ClassLoader.defineClass(

java - 有没有办法获取 ClassLoader 加载了哪些类?

我正在尝试为旧框架实现一些单元测试。我正在尝试模拟数据库层。不幸的是,我们的框架有点陈旧并且没有完全使用最佳实践,因此没有明确的关注点分离。我有点担心尝试模拟数据库层可能会使JVM加载大量甚至不会被使用的类。我不太了解类加载器,所以这可能不是问题。有没有办法在特定类加载器加载的所有类中达到峰值,以证明幕后发生了什么? 最佳答案 您可以创建自己的类加载器并在单元测试期间使用它来加载。让您自己的自定义类加载器打印出它在做什么。或者如果您只想知道加载了哪些类,请执行以下操作:java-verbose:class

Java 类加载器 : why search the parent classloader first?

Java中类加载器的正确行为是:如果已经加载,则返回类调用父类loadClass()尝试加载类本身。所以系统类路径中定义的类应该总是首先加载。Tomcat为每个war定义了类加载器,它以系统类加载器为父级,因此如果您尝试加载一个类,它将首先查找系统类路径,然后再查找war文件中定义的类路径。据我了解,这有两个原因:避免使用不同版本的类时出现问题。想象一下,我在一场war中重新定义了java.lang.Object,那将是一场噩梦。避免依赖于子类加载器:系统类加载器不能依赖于子类加载器:例如,重新部署war会很困难。所以,问题是:除了上述问题之外,实现不先进行父搜索的类加载器还有其他陷阱

php - Laravel classloader.php 错误无法打开流 : No such file or directory

我能够很好地运行“phpartisanmigrate”。如果我使用Request::all(),我可以获得所有表单输入,但是当我尝试将数据添加到我的mysql数据库表时,我收到以下错误:ErrorExceptioninClassLoader.phpline412:include(Correct_Path/full-personal/database/migrations/2015_07_06_035501_resume_requesters.php):failedtoopenstream:Nosuchfileordirectory我目前使用以下代码将表单附加到Controller方法:

android - 首次启动需要很长时间(ClassLoader 引用了未知路径)

更新我的Androidstudio到2.0和gradle到2.0.0和SDK-Platform到23.0.3之后我想启动应用程序花费了太多时间(大约2-3秒)并且AndroidMonitor中出现以下警告:W/System:ClassLoaderreferencedunknownpath:/data/app/net.hadifar.test-1/lib/armW/System:ClassLoaderreferencedunknownpath:/data/app/net.hadifar.test-1/lib/armW/art:Suspendingallthreadstook:5.439m

java - Tomcat Classloader 如何在同一个 JVM 中分离不同的 Webapps 对象范围?

由于Tomcat可以同时加载多个webapp,并且这些webapp可以单独工作,互不干扰,并且工作在同一个JVM中。所以我很困惑tomcat如何处理同一个JVM中的对象范围。例如,我在两个不同的Web应用程序中都有一个单例对象,而tomcat将为每个生成两个不同的单例对象。我一直认为单例对象在同一个JVM中只有一个对象,但在tomcatJVM中可能有两个或更多。我已经阅读了一些关于ClassLoader的信息,Tomcat有自己的WebAppClassLoader来加载webapps。那么这是否意味着这里的对象范围是ClassLoader还是我错了。有谁知道这个或者可以给我一些关于to

java - ClassLoader getResourceAsStream 返回 null

我的项目目录结构(在Eclipse中):MyProject/src/-->"sourcedirectory"onEclipse'sclasspath/buildpathcom.me.myappDrivermyconfig.txt在Driver中,我有以下代码:publicclassDriver{publicstaticvoidmain(String[]args){InputStreamis=ClassLoader.getSystemClassLoader.getResourceAsStream("myconfig.txt");if(is==null)System.out.println

java - 如何使用自定义 ClassLoader?

大家好,感谢关注!我有一个既简单又明显的问题,但我被困住了。我想通过自定义ClassLoader交付动态创建的Java类,供第三方库使用。现在我的问题是:当我自己不直接加载这些类时,如何设置我的自定义ClassLoader以用于加载它们?我想当我使用我的ClassLoader加载某个类时,它就变成了这个类的ClassLoader,从那个类加载的所有类都会通过我的ClassLoader进行引导。我按照这个官方教程创建了一个自定义类加载器:http://java.sun.com/developer/onlineTraining/Security/Fundamentals/magercise

Java:Class.forName 和 ClassLoader.loadClass 之间的区别

以下代码中的Class.forName和ClassLoader.loadClass有什么区别:ClasstheClass=Class.forName("SomeImpl");SomeImplimpl=(SomeImpl)theClass.newInstance();和ClasstheClass=ClassLoader.loadClass("SomeImpl");SomeImplimpl=(SomeImpl)theClass.newInstance();它们是同义词吗?在某些情况下,一个比另一个更可取吗?使用这两种方法的注意事项是什么? 最佳答案

java - 如何正确使用 ClassLoader.getResources()?

这个问题在这里已经有了答案:HowtolistthefilesinsideaJARfile?(17个回答)关闭6年前。如何使用ClassLoader.getResources()从我的类路径中递归查找资源?例如在META-INF“目录”中查找所有资源:想象一下像getClass().getClassLoader().getResources("META-INF")不幸的是,这只会检索到这个“目录”的URL。所有名为bla.xml的资源(递归)getClass().getClassLoader().getResources("bla.xml")但这会返回一个空的枚举。还有一个额外的问题: