当前位置: 首页 > news >正文

青海中小企业网站建设b2b免费发布网站大全

青海中小企业网站建设,b2b免费发布网站大全,wordpress安装语言设置中文乱码,正能量网站ip1. 意外的发现 在学习使用grun命令时,从未遇到过错误 最近使用grun命令,却遇到了NoClassDefFoundError的错误,使得grun测试工具无法成功启动 错误复现: 使用antlr4命令编译Hello.g4文件,并为指定package(…

1. 意外的发现

  • 在学习使用grun命令时,从未遇到过错误

  • 最近使用grun命令,却遇到了NoClassDefFoundError的错误,使得grun测试工具无法成功启动

  • 错误复现:

    1. 使用antlr4命令编译Hello.g4文件,并为指定package(com.sunrise.hello
      antlr4 Hello.g4 -o ../java/com/sunrise/hello -package com.sunrise.hello
      
      最终生成的Java代码如下:
    2. 使用mvn clean compile命令编译整个project
    3. 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虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误

  • 有一大堆文字,但是没看懂 😂 😂

  • 但是,对错误原因的简单描述跟当前情况十分吻合:生成的package为com.sunrise.hello的Java代码已经编译成功,但运行时却提示not found

  • 猜测:执行grun命令的路径不对,且作为GrammerName的Hello应该带包名

  • 验证猜测:回到target/classes目录,执行grun命令

    grun com.sunrise.hello.Hello r -tokens
    
  • 成功使用grun命令解析出tokens

3. 正确的解决办法

  • 使用grun测试lexer或parser时,如果生成的Java代码有设置package,需要到target/classes目录,并在GrammerName中使用类的完全限定名
  • 也就是需要带上package信息,就像下面的命令一样
    grun com.sunrise.hello.Hello r -tokens
    
http://www.shuangfujiaoyu.com/news/56880.html

相关文章:

  • 嘉兴企业网站建设系统友情链接获取的途径有哪些
  • 企业网站开发网络营销的核心是用户吗
  • 首都建设网南京百度快照优化排名
  • 怎么做直播网站sem搜索引擎营销是什么
  • 蓝冠在线网站建设成年学校培训班
  • 免费网页制作工具下载seo需求
  • 网站核验点查询游戏推广平台哪个好
  • 人工智能自动做网站搜索关键词排行榜
  • cms建站平台宁波正规站内优化seo
  • 湛江网红打卡餐厅360优化大师app下载
  • 网站建设 万网 域名搜狗收录提交
  • 网站备案完电信搜索引擎优化的简写是
  • 网站开发常见模块网络营销的主要方式和技巧
  • 天津企业建站程序怎么创建自己的免费网址
  • 亚马逊外贸网站如何做关键词林俊杰百度云
  • 逼格高的网站海外社交媒体营销
  • 网站制作的重要流程线上运营推广
  • 网站的空间域名广告推广图片
  • 微商城分销系统设计|分销电商系统app软件上海网站营销seo方案
  • 如何在人力资源网站做合同续签网站群发推广软件
  • wordpress主题付费百度优化关键词
  • 北京丰台做网站长沙网络推广只选智投未来
  • 沙井做网站发布软文
  • 人个做外贸用什么网站好ios aso优化工具
  • 5000元网站seo推广seoul什么意思
  • 北京网站建设套餐seo课程培训视频
  • 打好代码怎么做网站合肥百度关键词推广
  • 招聘网站开发源代码品牌推广文案
  • 北京网站建设方案免费网站或软件
  • 建一个网站得多少钱seo简单优化操作步骤