jjzjj

ClassLoader

全部标签

Java 9,与 ClassLoader.getSystemClassLoader 的兼容性问题

以下代码将jar文件添加到构建路径,它在Java8中运行良好。但是,它在Java9中抛出异常,该异常与对URLClassLoader的转换有关。任何想法如何解决这个问题?最佳解决方案将对其进行编辑以同时适用于Java8和9。privatestaticintAddtoBuildPath(Filef){try{URIu=f.toURI();URLClassLoaderurlClassLoader=(URLClassLoader)ClassLoader.getSystemClassLoader();ClassurlClass=URLClassLoader.class;Methodmethod

java - 什么是 java.lang.UnsupportedClassVersionError?

什么是java.lang.UnsupportedClassVersionError?我从doc中读到:当Java虚拟机尝试读取类文件并确定文件中的主要和次要版本号不受支持时抛出,但无法理解这是什么意思。文件中的主要版本和次要版本是什么?当抛出以下异常时,我在其他机器上启动了一个应用程序:Exceptioninthread"main"java.lang.UnsupportedClassVersionError:client(Unsupportedmajor.minorversion51.0)atjava.lang.ClassLoader.defineClass0(NativeMethod

java - 使用 Reflections google library 的单元测试仅在由 Maven 执行时失败

我正在使用谷歌Reflectionslibrary用于查询类路径中的某些资源。这些资源与我的项目中的类位于同一位置。我编写了一些单元测试,在Eclipse中作为单元测试执行时成功,但是当我尝试使用Maven执行它们时(例如maveninstall),它们没有按预期工作。经过一些调试,显然问题是在使用Maven执行时,Reflections库无法找到资源所在的类路径url。我得出了这个结论,研究了Reflections如何确定应该检查的类路径URL。作为示例,以下方法显示了Reflections如何在给定类加载器的情况下找到可用的类路径URL(原始的Reflections方法已稍微简化)

java - UnsupportedClassVersionError 的原因是什么?

java.lang.UnsupportedClassVersionError:Badversionnumberin.classfileatjava.lang.ClassLoader.defineClass1(NativeMethod)atjava.lang.ClassLoader.defineClass(ClassLoader.java:676)atjava.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)atjava.net.URLClassLoader.defineClass(URLClassLoa

java - maven项目中的资源和配置加载

我正在使用Maven构建桌面应用程序。我读到了Mavenstandarddirectorylayout我现在有这个项目结构:App|--pom.xml`--src|--main|--java|`--javaclasses|--resources|`--images|`--appimages`--config`--config.xml我想找到一种方法来加载我的资源和配置文件。我阅读了一些文章和主题并发现了这个(我的代码中的简化示例)://classforloadingconfigpublicclassPreferences{publicPreferences(){InputStreami

java - 如何使用maven制作可执行jar?

我的maven项目是这样的,我在/src/main/resources文件夹中有一个quartz.properties文件,如下所示my-app|--pom.xml`--src|--main||--java||`--com||`--mycompany||`--app||`--App.java|`--resources|`--quartz.properties`--test|--java`--com`--mycompany`--app`--AppTest.java现在我想使用maven制作一个可执行jar,以便我可以像这样运行它java-jarabc.jar。下面是我的主要方法代码,它在

java - 读取 JSON 文件错误

我尝试用Java读取JSON文件。代码是:publicstaticvoidmain(String[]args)throwsException{InputStreamis=newFileInputStream("j.txt");StringjsonTxt=IOUtils.toString(is);JSONObjectjson=(JSONObject)JSONSerializer.toJSON(jsonTxt);JSONObjectroutes=json.getJSONObject("routes");JSONObjectlegs=routes.getJSONObject("legs");

Java - 将 java 代理注入(inject)运行的 jvm

基本上,我正在尝试编写一些东西来列出JVM加载的每个类。我写的东西有效,但它只适用于它运行的jvm。我制作了一个java代理来动态注入(inject)另一个JVM,但后来意识到我实际上并不知道如何注入(inject)它。我如何实际将此代理发送到另一个JVM?可能吗? 最佳答案 动态代理需要声明一个agentmain(String,Instrumentation)方法,该方法在目标VM内连接时执行。您可以使用仅包含在JDK而不是JRE中的tools.jar依赖项(直到Java9)。但是,您可以将代理程序与JDK捆绑在一起,然后从那里附

java - 如何检查作为 Class 对象的参数的 instanceof?

我正在尝试构建一个通用类加载器。我需要根据方法参数检查加载的类,以确定它们是否属于同一类。代码主要解释了我要做什么。privatestaticLinkedListloadObjectsInDirectory(Classclass0,Filedir)throwsClassNotFoundException{LinkedListobjects=newLinkedList();ClassLoadercl=newGenericClassLoader();for(Strings:dir.list()){Classclass1=cl.loadClass(s);try{Objectx=class1.

java - Lambda vs 匿名内部类性能 : reducing the load on the ClassLoader?

我想知道lambda在Java8中有多大的好处。我同意有时使用lambda可能更具可读性,但它对性能方面真的有这么大的影响吗?或者它主要集中在语法糖上?有时我更喜欢匿名内部类;如果我一直不使用lambda,我真的会失去很多好处吗?唯一的?大?在我看来,性能提升是因为我们实际上并没有创建类加载器必须在程序开始时加载的类——例如创建许多线程:Threadt=newThread(newRunnable(){public.....});创建类似Sample$1.class的类。除此之外,除了代码的可读性或可维护性等之外,是否还有任何性能或其他隐藏的增益?隐藏在JVM的某个地方?我见过与此类似的