执行Java奇偶数字判断程序时出现boot层初始化错误如何解决
问题根源
你编写的奇偶判断代码本身无任何语法、逻辑错误,报错是Java 9及以上版本的模块系统在启动时,加载了不符合模块规范的第三方依赖导致的,和当前业务代码完全无关。
报错的直接原因是你把POI套件下的batik-script-1.14.jar错误加入了当前程序的运行模块路径,该jar本身缺失必要的模块描述文件,JVM解析失败抛出异常。
解决方案
按你运行代码的场景选择对应操作即可:
场景1:使用IDEA/Eclipse等IDE运行
- 打开当前
OddEvenNumber类对应的运行配置,找到*模块路径(Module Path)或类路径(Classpath)*配置项 - 移除列表中所有属于
poi-bin-5.1.0目录下的第三方依赖包,仅保留JDK系统库 - 保存配置后重新运行代码即可正常执行
场景2:使用命令行编译运行
你在运行命令中错误指定了POI依赖的路径,直接用无额外依赖的命令执行即可:
- 编译命令:
javac -d . OddEvenNumber.java - 运行命令:
java BasicPrograms.OddEvenNumber
额外说明
如果当前项目本身就需要用到POI依赖,可以把POI相关的jar包从模块路径移动到*类路径(Classpath)*下,JVM会以非模块的方式加载这些jar,就不会触发模块描述符校验的报错。
内容的提问来源于stack exchange,提问作者Arvind
相关产品推荐
相关产品推荐

