网上有这个问题得解答,但是解决起来还是很麻烦
aspectj: Invalid byte tag in constant pool: 18 - 知乎
我来说是我得实践
首先这个问题在本地运行一直没问题
分析了半天发现本地用的是32 位为jdk,运行用了161 版jre
改用linux 的 8.5.73 tomcat进行开发。问题重现了
然后还是无法解决啊
然后只能灰溜溜用回tomcat7.0.99
===============================直接用junit 测试=====================
package org.junit.test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(locations = {"classpath:spring/ApplicationContext.xml"})
public class SpringTest {
@Test
public void test() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/ApplicationContext.xml");
}
}
1.jre161 64位
jdk8 161 64位 +spring 4.3.3 +junit
org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
组织。aspectj。阿帕奇。bcel。类文件。类格式异常:
常量池中的字节标记无效:18
2.jdk1.8.0_111 32位 +spring 4.3.3 +junit
jre1.8.0_111 32位
还是一样
包冲突了,删掉这个jar
运行成功!!!!!
改回原来环境看看,ok. 改成tomcat8.201 运行试试
运行成功!!!!!! !!!!!!
tomcat 8.5 死活不能运行
直接上 tomcat9.0.56 了