草庐IT

classLoader

全部标签

java - 使用 javax.tool 进行级联内存编译

Eclipse的JDT编译器提供了一个接口(interface)INameEnvironment,它定义了方法findType(...)使您能够进行级联编译。奇怪的是,我想知道是否有任何方法可以使用标准JDK编译器工具包来完成它?注意,该场景是一个模板引擎,它在内存中编译模板文件生成的类,这些类具有相互依赖性,它无法预测您遇到模板文件的顺序,因此Foo可能需要在它的父Bar编译之前先被编译,因此你需要一种机制来进行级联编译,这意味着在Foo的编译过程中你需要生成另一个源代码Bar并首先编译它以继续Foo的编译:一些代码如下:privateNameEnvironmentAnswerfin

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

具有自定义 ClassLoader 和 FileManager 的 JavaCompiler

我希望在机器上没有依赖项的情况下编译源代码。示例:文件A.java:importsome.pkg.B;publicclassAextendsB{...}我没有B源,我希望HookJavaFileManager或自定义ClassLoader以获得有问题的符号(包“some.package”和类B),然后使用我拥有的服务检索源字符串。编译代码:(inputFiles有A.java)JavaCompilercompiler=ToolProvider.getSystemJavaCompiler();CustomClassLoaderclassLoader=newCustomClassLoade

java - 无法集成 BouncyCaSTLe Jar

好吧,我现在说我对Java知之甚少。我得到了BouncyCaSTLeJar,并被告知其中包含我完成这项任务所需的东西。Jar文件是bcprov-jdk15on-147.jar。我也在我学校维护的Unix机器上执行此操作,因此我无法进入并使用所有Java文件。当我使用Javac编译我的类时(特别是我使用命令javac-classpathbcprov-jdk15on-147.jarencrypt.java),它编译没有错误,但是当我去运行之后使用命令javaencrypt进行编程,我收到此错误消息:Exceptioninthread"main"java.lang.NoClassDefFou

java - 以下 Java 代码在自主计算领域有何用处?

在我正在学习的一本书中,他们展示了这段Java代码:Classc=ClassLoader.getSystemClassLoader().loadClass(name);Classtype=this.getClass().getClassLoader().loadClass(name);Objectobj=type.newInstance();此代码用于动态加载Java类。这本书接着说:unloadingmodulesraisesanissue.Aclassloadercannotunloadaclass.Unloadingaclassrequiresunloadingtheclassl

java - 以编程方式填充 JVM 永久代 (PermGen) 内存区域

我需要测试我开发的一些JMX监控脚本,特别是我想验证我对PermGen区域的监控是否正常工作。因此,为了对此进行测试,我希望能够运行一些代码来加载大量类,以便使用PermGen。我目前的计划是编写一个脚本来生成prefix(1..n).java编译它们,然后按提示运行:for(inti=1;i是否有更优雅的解决方案来实现这一目标? 最佳答案 好的,看来String.intern()可以解决问题。这是我发现的一个实现。也归功于Gareth:publicstaticvoidmain(String[]args)throwsClassNot

java - 是 6.1 java.lang.VerifyError : class loading constraint violated

环境是Linux上的WAS6.1,部署一个webapp,使用来自xercesImpl.jar的类。由于公司政策限制,应用程序必须与设置:ClassLoaderOrderClassesloadedwithparentclassloaderfirst->ClassesloadedwithapplicationclassloaderfirstWARclassloaderpolicyClassloaderforeachWARfileinapplication->SingleclassloaderforapplicationWAR文件包含xercesImpl.jar的副本,与编译应用程序时在类路

java - 以编程方式分析jar文件

我需要以编程方式计算给定jar文件中已编译类、接口(interface)和枚举的数量(因此我需要三个单独的数字)。哪个API可以帮助我?(我不能使用第三方库。)我已经尝试过相当棘手的方案,但似乎并不总是正确的。也就是说,我将每个ZipEntry读入一个byte[],然后将结果提供给我的自定义类加载器,它扩展了标准的CalssLoader,并将这个byte[]发送到ClassLoader.defineClass(这是protected,不能直接从应用程序代码调用).完整代码是onthePastebin. 最佳答案 jar文件是具有特定

java - 了解 Groovy/Grails 类加载器泄漏

昨天我将我的第一个Grails(2.3.6)应用程序部署到开发服务器并开始监控它。我刚刚得到一个自动监视器,指出CPU已固定在这台机器上,所以我通过SSH连接到它。我运行top并发现是我的Java应用程序的PID固定了服务器。我还注意到内存为40%。几秒钟后,CPU停止固定,下降到正常水平,内存又下降到大约20%的范围内。经典的主要GC。在收集时,我进行了堆转储。在GC之后,我在JVisualVM中打开转储,看到大部分内存分配给org.codehaus.groovy.runtime.metaclass.MetaMethodIndex.Entry类。总共有将近250,000个这样的实例,

java - 没有任何类名的 NoClassDefFoundError

我正在尝试从ant运行java任务。我正在尝试运行“org.apache.tools.ant.launch.Launcher”类。我不断收到“NoClassDefFoundError”,但没有指定任何类名。我还收到“ClassNotFoundException”以及显示消息“找不到主类:.程序将退出”的消息。这是错误的片段[java]Exceptioninthread"main"java.lang.NoClassDefFoundError:[java]Causedby:java.lang.ClassNotFoundException:[java]atjava.net.URLClassL