gpt4 book ai didi

java - 运行 jar 时出现 NoClassDefFound 错误

转载 作者:行者123 更新时间:2023-12-01 19:25:52 26 4
gpt4 key购买 nike

我使用 IntelliJ 构建了一个 jar,并正确设置了主类。

当我从命令行 (Windows) 运行“java -jar foo.jar”时,出现一个异常,声称主文件丢失。主类看起来像这样:

package mypackage;

public class LockUtil {
public static void main(String[] args) {
...

我遇到以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: mypackage/LockUtil
Caused by: java.lang.ClassNotFoundException: mypackage.LockUtil
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: mypackage.LockUtil. Program will exit.

list 文件包含:

Manifest-Version: 1.0
Created-By: IntelliJ IDEA
Main-Class: mypackage.LockUtil

并且该 jar 包含带有 .class 文件的适当目录结构。

最佳答案

如果你执行jar -tf foo.jar,你会看到类似这样的东西吗?

META-INF/
META-INF/MANIFEST.MF
mypackage/
mypackage/LockUtil.class

是否可能还有另一个目录级别?

您可以通过使用如下内容构建 jar 文件来确保 Java 知道主文件在那里:

jar cfe foo.jar mypackage.LockUtil mypackage/LockUtil.class

关于java - 运行 jar 时出现 NoClassDefFound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074955/

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