【问题标题】:Java NoSuchMethodError for regex.Matcher.results() when running .jar file运行 .jar 文件时 regex.Matcher.results() 的 Java NoSuchMethodError
【发布时间】:2021-11-19 22:42:04
【问题描述】:

当我将我的应用程序作为 .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 时检查它是否以某种方式丢失?

【问题讨论】:

  • 可能您在 Eclipse 和 OS 中运行不同的 Java 版本。在操作系统命令提示符下,java -version 的结果是什么?
  • 1.8.0_221 for java in cmd prompt 在eclipse中配置显示:java.runtime.version=11.0.2+9

标签: java jar nosuchmethoderror


【解决方案1】:

所以,这是你的问题。 java.util.regex.Matcher.results 自 Java 9 起就在 Java 中,您正在使用 Java 8 运行 .jar。

Eclipse 使用 Java11 运行。

在您的操作系统(Windows ?)中至少安装 Java9 作为默认 JRE。

【讨论】:

  • 太棒了!就是这样。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-01-21
  • 2017-05-05
  • 2010-12-18
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
  • 2014-06-07
  • 2017-05-10
相关资源
最近更新 更多