Java 当 运行 .jar 文件时 regex.Matcher.results() 的 NoSuchMethodError

Java NoSuchMethodError for regex.Matcher.results() when running .jar file

当我 运行 我的应用程序作为 .jar 文件时,它 returns 出现以下错误:

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 中,因为 Java 9 而你是 运行 带有 Java 8.

的 .jar

Eclipse 使用 Java11.

运行

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