Unable to process Jar entry [module-info.class] from Jar的问题解决 背景 解决办法 背景 在使用Eclipse进行Spring Boot应用开发时...,如果项目启动是Run As->Run On Server方式运行就会报类似于Unable to process Jar entry [module-info.class] from Jar的错误,详细错误类似如下...: 严重: Unable to process Jar entry [module-info.class] from Jar [file:/E:/workspace/.metadata/.plugins...34:31 上午 org.apache.catalina.startup.ContextConfig processAnnotationsJar 严重: Unable to process Jar entry...detected on classpath Unable to process Jar entry [module-info.class] from Jar[file:/E:/workspace/.metadata
产生这个错误的原因是springboot的自动配置,如果你没有配置DataSource就会导致下图这个错误
报错信息: SEVERE: Unable to process Jar entry [module-info.class] from Jar [jar:file:/home/apache-tomcat-...7.0.72/webapps/wenjuan/WEB-INF/lib/lombok-1.18.0.jar!...其实到项目目录下lib里面把这个jar包删了就好了,不然他会经常报错,但不影响程序正常运行 答案在这里 https://github.com/rzwitserloot/lombok/issues/1801
我们只需要去.m2中的maven仓库里找到后面报错的jar包, 然后用压缩文件工具打开,删除里面的module-info.class文件, 就Ok了 列如:Unable to process Jar entry...[module-info.class]\ E:\workspace\znggjc\target\znggjc-1.0\WEB-INF\lib\ log4j-api-2.10.0.jar for annotations..., 第一步:进入Maven仓库里找到这个jar ?...第二步:右击这个jar用压缩工具打开 ? 第三步:删除打开文件里的module-info.class文件夹(我的已经删除,你们直接删除就好,然后重新运行项目就好了) ?
Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/D:/localRepository2.../org/apache/logging/log4j/log4j-api/2.11.1/log4j-api-2.11.1.jar!
META-INF/maven/**,!...问题 duplicate class definitions [proguard] Warning: class [META-INF/versions/9/org/apache/logging/log4j...-1.3.2.jar] [proguard] Warning: class [META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class...module-info.class)] (No such file or directory: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/...doc libraryjars Proguard injars and libraryjars ProGuard 6.0 beta2 - Unable to run Jar Note: duplicate
比如下面命令创建了多个版本发行的jar包,并且将一些文件放在 META-INF/versions/9 目录中。...jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes module-info.class 假如我们使用的是JDK9之后的...关于JPMS的更多信息可以参考我之前写的文章:JDK9的新特性:JPMS模块化. versions versions主要和 multi-release JAR一起使用的: Multi-Release:...一般来说,目录结构是这样的:META-INF/versions/N 其中N表示的是JDK的主要发行版本,比如9,10,11等。...类加载器会先去META-INF/versions/N目录中加载所需要的class,然后会去其他的低版本的META-INF/versions/N目录中加载所需要的class,最后才会在META-INF/的根目录加载其他的
据我研究中知道的jar就有: ? 注意:不连外网配置maven中央仓库的话,少了jar你们会很头疼的。...仓库的jar上传到私服去 Can’t process class [META-INF/versions/9/org/apache/logging/log4j/util/Base64Util.class]...Can’t process class [META-INF/versions/11/module-info.class] 问题原因 这个问题的原因有很多方面,最主要的就是我们的jdk版本是1.8,...我最开始用的ProGuard是5.3.3版本,然而我们SpringBoot的版本是2.3.3版本,SpringBoot2.3.3版本太新了,里面引用的相关包都是java9和java11的版本,这样ProGuard...${settings.localRepository}/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar(META-INF/versions/11/module-info.class
具体的变化就是META-INF目录下MANIFEST.MF文件新增了一个属性: Multi-Release: true 然后META-INF目录下还新增了一个versions目录,如果是要支持java9...jar包,然后Multi-Release设置为true,通过编译打包把java9的classes放到META-INF/versions/9目录下,原来java8的classes位置不变。...MD5 checksum 9fafe51ca3df481e8c2264753c281a9a Compiled from "StackHelper.java" public class com.example.lang.StackHelper.../META-INF/versions/9/com/example/lang/StackHelper.class Classfile /Users/demo/multi-release-jar-demo/...mr-jar-java8/target/mr-jar-java-0.0.1-SNAPSHOT/META-INF/versions/9/com/example/lang/StackHelper.class
编译模块 $ javac -d classes src/**.java 反编译看一下: $ javap classes/module-info.class Compiled from "module-info.java...打包模块 $ jar cvf lib/hello.jar -C classes . $ jar tf lib/hello.jar META-INF/ META-INF/MANIFEST.MF module-info.class...java9的jar提供了一个create开关,用这种方式打包,可以为module指定主类: $ jar --create --file lib/lib.jar --main-class com.pollyduan.modular.Demo...检查jar结构: $ jar tf com.foo.bar-1.0.jar META-INF/ META-INF/MANIFEST.MF module-info.class com/ com/foo/...物理层面上,module在一定意义上可以理解为jar中的一个module-info.class。
java9新增的模块信息 所以明明安卓当前最多只能支持到java8,那么哪里来的java9的新特性呢?而且为什么会导致这么奇奇怪怪的问题吗?...我对module-info.class的类进行过滤,因为前文介绍过着是java9模块化使用的,也就是说在低版本上有没有这个类,其实完全没有用,他并不会实际被使用到。...tips 小贴士,这里有个极端情况就是在META-INF文件夹下的moudle-info是不能被删除的。 所以我们只要在class扫描阶段对这些高版本特性的进行一次过滤就可以了。...entryName.contains("META-INF")) { Log.info("jar file module-info:$entryName jarFileName...class")) { try { modifiedClassBytes = transform.process
Matrix.MethodTracer] [innerTraceMethodFromJar] input:C:\Users\N21616\.gradle\caches\transforms-2\files-2.1\e378b9fe89a5fe15cf3fa9c9da712ef7.../versions/9/module-info.class,superName 为 null,导致报错。...那这个 module-info.class 到底是什么东东?搜了一下,发现 module-info.class 不是标准的 class。...; 在JDK8及以下,module-info.class并不会起作用,只有在JDK9以上才会起作用; 可以看到这个class并不是一个正常的class,并不包含类或者方法,所以asm和javassist...= srcMap) { for (Map.Entry entry : srcMap.entrySet()) { futures.add
/spring.factories的jar包。...spring-boot-autoconfigure-x.x.x.x.jar里就有一个这样的spring.factories文件。...> entry = (Entry)var6.next(); String factoryTypeName = ((String)entry.getKey(...)entry.getValue()); int var10 = var9.length; for(int...to load factories from location [META-INF/spring.factories]", var13); } } }
工作时有时候需要临时修改jar包内容,特别是没有源码的时候,就只能手工修改了 解压 jar -xvf tenmao.jar 修改 修改vim等修改jar包内容 jar czf tenmao.jar *...但是会出现以下错误 no main manifest attribute, in tenmao.jar 因为jar打包的时候,会重新生成META-INF/MANIFEST.MF 使用如下命令 jar...-cfM0 tenmao.jar BOOT-INF META-INF org 参考 springBoot项目替换lib下的依赖jar包 Unable to open nested entry BOOT-INF.../lib/ 如何修改jar包中的内容
process方法源码如下: @Override public void process(AnnotationMetadata annotationMetadata, DeferredImportSelector...> entry : properties.entrySet()) { String factoryTypeName = ((String) entry.getKey())...classLoader, result); } catch (IOException ex) { throw new IllegalArgumentException("Unable...to load factories from location [" + FACTORIES_RESOURCE_LOCATION + "]",...SpringFactoriesLoader.loadSpringFactories从jar包中找到所有META-INF/spring.factories文件并读取自动配置类,存放到map中, loadFactoryNames
一、基本使用方法 多版本的字节码发行jar包,需要在其MANIFEST.MF中做以下的声明: Multi-Release: true 在jar包的META-INF/versions文件目录里面可以包含多个版本的...class文件,编译结果目录结构如下: jar root - A.class - B.class - META-INF - versions - 9...META-INF/versions/9/ 是使用java 9 编写的java代码的编译结果A.class。...如果jar包是在JDK 9的运行时环境下运行,将使用META-INF/versions/9/ 下面的class文件进行程序运行。...下面 jar root - A.class - B.class - META-INF - versions - 9 - A.class
文章目录 Pre 引导 新建工程 打包 启动 java -jar 干啥的 打包插件 spring-boot-maven-plugin简介 包结构 META-INF内容 Archive的概念 JarFile...JarFile被构造的时候会解析内部结构,去获取jar包里的各个文件或文件夹,这些文件或文件夹会被封装到Entry中,也存储在JarFileArchive中。...如果Entry是个jar,会解析成JarFileArchive。.../executable-jar-1.0-SNAPSHOT.jar 这个JarFile有很多Entry,比如: META-INF/ META-INF/MANIFEST.MF spring/ spring/...code source archive from " + root); } return (root.isDirectory() ?
> entry = (Entry)var6.next(); String factoryClassName = ((String)entry.getKey...)entry.getValue()); int var10 = var9.length; for(int...result; } catch (IOException var13) { throw new IllegalArgumentException("Unable...to load factories from location [META-INF/spring.factories]", var13); } } }...(1)运行jar时增加–debug参数。 java -jar xx.jar --debug (2)在application.properties进行配置。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.wangzhi.Dog 然后在project B中引用project A的jar...classLoader, result); return result; } catch (IOException ex) { throw new IllegalArgumentException("Unable...to load factories from location [" + FACTORIES_RESOURCE_LOCATION + "]", ex); } } 注册到容器 在上面的流程中得到了所有在...Throwable ex) { throw new BeanDefinitionStoreException( "Failed to process...类型其处理逻辑会不一样,这里不关注 // Candidate class not an ImportSelector or ImportBeanDefinitionRegistrar -> // process
领取专属 10元无门槛券
手把手带您无忧上云