gpt4 book ai didi

java - 以下错误是什么意思?

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:48 24 4
gpt4 key购买 nike

我正在运行我的 java 程序,但在执行时出现以下错误。在它运行良好之前但现在它抛出以下错误。我检查了我的类路径,环境变量中的路径都是正确的。

Exception in thread "main" java.lang.UnsatisfiedLinkError: java.util.zip.ZipFile
.open(Ljava/lang/String;IJ)J
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:646)
at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:540)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:607)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:599)
at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:583)
at sun.misc.URLClassPath$3.run(URLClassPath.java:333)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:322)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:299)
at sun.misc.URLClassPath.getResource(URLClassPath.java:168)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: com.sun.tools.javac.Main. Program will exit.

最佳答案

详细说明@Peter Lawrey 的回答......

堆栈跟踪的开始是这样的:

Exception in thread "main" java.lang.UnsatisfiedLinkError: java.util.zip.ZipFile
.open(Ljava/lang/String;IJ)J
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
...

UnsatisfiedLinkError 当您尝试调用尚未解析为相应 native 库中的方法的 native 方法时抛出。消息的其余部分告诉我们出错的方法具有签名:

long java.util.zip.ZipFile.open(String, int, long)

这与堆栈跟踪的顶层框架相吻合......以及 Java 的 ZipFile 代码使用本地库来完成繁重工作这一事实。

它已经走到这一步的事实意味着 JVM 已经找到了 native 库并加载了它。但显然,加载并没有解决 native open 方法的重载。这只能说明一件事:引导类路径上的 ZipFile 类的版本与 native 库不匹配。

我们无法就这是 JDK 还是 JRE 做出任何明确的结论,但它似乎很可能是 JDK ... 除非 OP 试图以一种奇怪的方式调用 Java 编译器。 (“找不到主类:com.sun.tools.javac.Main”消息可能意味着 JVM 无法加载类...因为 UnsatisfiedLinkError破损。)

无论哪种方式,JDK 与 JRE 都不是直接的问题。真正的问题是 JVM 引导类路径上的“rt.jar”与 native 库不匹配。


问题是:

how to solve this then?

这取决于你究竟做了什么来得到这个错误。

  • 你运行了什么命令?
  • 命令行选项和参数是什么?
  • 您的 JRE/JDK 安装是否“乱七八糟”?
  • 您是否尝试在另一个安装中使用一个安装的“rt.jar”文件?

关于java - 以下错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com