Antlr4:使用grun命令,触发NoClassDefFoundError
1. 意外的发现
- 在学习使用grun命令时,从未遇到过错误
- 最近使用grun命令,却遇到了
NoClassDefFoundError
的错误,使得grun测试工具无法成功启动
错误复现:
使用antlr4命令编译Hello.g4文件,并为指定package(
com.sunrise.hello
)antlr4 Hello.g4 -o ../java/com/sunrise/hello -package com.sunrise.hello
最终生成的Java代码如下:
使用mvn clean compile命令编译整个project
在
target/classes/com/sunrise/hello
目录下执行grun命令解析token,出现NoClassDefFoundError
的错误
详细的错误日志如下:Exception in thread "main" java.lang.NoClassDefFoundError: HelloLexer (wrong name: com/sunrise/hello/HelloLexer)at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:763)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)at java.net.URLClassLoader.access$100(URLClassLoader.java:74)at java.net.URLClassLoader$1.run(URLClassLoader.java:369)at java.net.URLClassLoader$1.run(URLClassLoader.java:363)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:362)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at org.antlr.v4.gui.TestRig.process(TestRig.java:129)at org.antlr.v4.gui.TestRig.main(TestRig.java:119)
2. 错误原因
从报错信息看,貌似是HelloLexer有错误的包名,导致运行时JVM无法找到
HelloLexer
类上网查阅NoClassDefFoundError的原因如下:
NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误
有一大堆文字,但是没看懂
Antlr4:使用grun命令,触发NoClassDefFoundError相关推荐
- 康耐视InSight相机的TCP\IP通讯设置以及字符命令触发
1. TCP\IP通讯 智能相机既可以作为TCP\IP服务器存在,又可以作为TCP\IP客户端,这里分别介绍如何在电子表格模式下,设置InSight相机的客户端和服务器下的收发数据. 2. 客户端 创 ...
- 持续集成部署Jenkins工作笔记0014---curl命令触发构建
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 好,然后咱们来看看怎么来做这个钩子程序,要先说一个curl命令 咱们先去看这个svn的仓库 可以看 ...
- 2. mac上的Antlr4环境搭建
1. 序言 配置目标语言为Java的Antlr4环境,有以下三种方法,根据自己的需求,任选其一即可: 安装complete jar,则可以通过命令行编译语法文件(.g4文件),以及测试词法或语法规则( ...
- 一、本地安装ANTLR4并编译G4文件
文章目录 1.下载插件 2.添加ANTLR到环境变量中 3.将常用命令创建成batch命令 4.测试并编译第一个G4文件 1)测试是否安装成功 2)编译一个简单的Demo 1.下载插件 首先从官网下载 ...
- ANTLR4权威参考手册(二)
第一部分ANTLR和计算机语言 在第一部分中,我们会学习ANTLR安装,尝试通过一个简单的"HelloWorld"语法,并了解语言应用程序开发大纲.有了这些基础,我们将建立一个语法 ...
- antlr4 mysql_Antlr4 入门
一.ANTRL 是什么 ANTLR 是用JAVA写的语言识别工具,它用来声明语言的语法,简称为"元语言"(meta-language). ANTLR 语法识别一般分为二个阶段: 1 ...
- antlr4 实战 idea
ANTLR 是用JAVA写的语言识别工具,它用来声明语言的语法,简称为"元语言"(meta-language). ANTLR 语法识别一般分为二个阶段: 1.词法分析阶段 (lex ...
- Antlr4在win10下的环境配置
Antlr4在win10下的环境配置 最近做的项目,需要将建模生成的文件反编译生成模型.以前的导师推荐过一款语法解析器生成器ANTLR (ANother Tool for Language Recog ...
- 1. windows上安装antlr4(code generation target为Java)
1. 絮絮叨叨 读研时,需要基于不同的应用(大数据组件)比较HDFS改造后的性能,当时有使用到Impala 当时,导师给我推荐了ANTLR(ANother Tool for Language Reco ...
最新文章
- 社交媒体如何破坏了你的生活? | 大咖来了
- Ubuntu 更改ROOT密码的方法
- 【Java线程】深入理解Volatile关键字和使用
- 外媒:苹果高管正拜访亚洲供应商,探讨苹果汽车生产事宜
- python入门指南by许半仙长佩_有哪些好看的耽美文啊?
- Shell(一) 入门到复杂 自己做的各种脚本实例与解释
- STL源码剖析之迭代器
- 压力测试工具Siege详解
- 学习笔记|Pytorch使用教程22(hook函数与CAM可视化)
- 7月22日自助装机配置专家点评
- python 网络拓扑图_python 网络拓扑图
- .NET 函数调用反转
- 2022年最新河北水利水电施工安全员模拟试题及答案
- 7个实战技巧帮你提升前端技术水平!
- QNX系统终端中同一个进程号显示多次
- ThreadPoolExecutor-线程池的理解
- 【学术期刊】2023CCF推荐的A,B,C类英文科技期刊目录最新发布
- OKR 结果思维:为什么要以结果为导向?(第一部分)
- Neo4j CQL-(18)IN操作符
- 20本英文书点亮你的人生智慧
热门文章
- 康耐视InSight相机的TCP\IP通讯设置以及字符命令触发