java - 运行 .jar 文件时 regex.Matcher.results() 的 Java NoSuchMethodError
问题描述
当我将我的应用程序作为 .jar 文件运行时,它返回以下错误:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrc
der.java:61)
Caused by: java.lang.NoSuchMethodError: java.util.regex.Matcher.results()Ljav
til/stream/Stream;
at SalesToExcel.start(SalesToExcel.java:108)
at SalesToExcel.main(SalesToExcel.java:45)
... 5 more
但是,当我在 Eclipse IDE 中运行它时,它可以工作。有任何想法吗?我不确定我是否以某种方式丢失了正确的 jar 文件,即使 java.utils.regex 应该包含在 rt.jar 中。有没有办法在我打包 jar 时检查它是否以某种方式丢失?
解决方案
所以,这是你的问题。java.util.regex.Matcher.results自 Java 9 起就在 Java 中,您正在使用 Java 8 运行 .jar。
Eclipse 使用 Java11 运行。
在您的操作系统(Windows?)中至少安装 Java9 作为默认 JRE。
推荐阅读
- java - 用 Java 创建 MySQL 表看起来很乱
- mysql - 输出为 [object SequelizeInstance:transaction] 而不是 json 对象
- python - 使用 minidom 和 xml2xlsx 从 xml 转换为 xlsl 不起作用
- android - 连接失败时 okhttp 静默重试的问题
- azure-active-directory - AcquireTokenAsync 允许的额外查询参数是什么
- java - 错误:线程“main”中的异常 java.lang.ClassCastException:sun.nio.fs.UnixPath 无法转换为 org.apache.parquet.io.OutputFile
- python - 在电视节目中获取可交互的授权信息?
- python - python中的time.sleep不起作用但立即退出
- c++ - 表达式必须是可修改的左值(将指针传递给函数)
- c++ - 如何确定我平台上的最大指针大小?