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

青海中小企业网站建设网站免费软件

青海中小企业网站建设,网站免费软件,阳泉购物网站开发设计,企业在阿里做网站是什么意思1. 意外的发现 在学习使用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.tj-hxxt.cn/news/67247.html

相关文章:

  • 日文网站建设app开发费用
  • 静态网站建设怎么办网站平台
  • 婚恋网站开发背景文献2345网址大全浏览器
  • 网站建设优化广告流量seo建站的步骤
  • 法院举报网站建设的要求百度seo优化系统
  • 党建网站的规范化建设6长春百度网站优化
  • 南昌网站建设方案外包百度问一问付费咨询
  • 无锡建设网站的公司哪家好想要导航推广网页怎么做
  • 三明网站建设长沙官网seo技术厂家
  • 微信公众号登录wordpress网站吗百度推广找谁做靠谱
  • 裕华建设集团网站百度关键词自然排名优化公司
  • 大连教育培训网站建设台州seo排名优化
  • 企业主页包含做seo有什么好处
  • 医疗网站建设意见山东网站seo推广优化价格
  • 怎么用自己电脑做网站一个网站推广
  • 一个网站开发团队产品推广营销
  • 汨罗网站建设sem搜索引擎营销
  • 网站如何做熊掌号并绑定营销型网站策划方案
  • 加盟网页制作广州网站优化运营
  • 网站首页引导页 模版seo标题优化
  • 企业商务网站设计与开发美容美发培训职业学校
  • 网站seo报表seo sem是什么意思
  • 小说小程序搭建东莞网站seo技术
  • 网站基本参数设置模块西安百度推广代理商
  • 网站改版多少钱西安网站seo外包
  • javaweb网页设计百度seo关键词点击软件
  • 用腾讯云做淘宝客网站视频线上推广有哪些平台效果好
  • 给别人生日做网站推广app佣金平台正规
  • 四川省住房和城乡建设厅网站不见了营销网站建设推广
  • 和俄罗斯美女做的视频网站服务器ip域名解析