gpt4 book ai didi

java - 为什么 NoClassDefFoundError 的名称错误

转载 作者:行者123 更新时间:2023-12-01 18:55:12 28 4
gpt4 key购买 nike

我在包含此代码的文件夹 UtilityPack 中创建了一个 List.java 文件

package Utilities;
public class List
{
private class node{}
public void insert(int data){}
public void print(){}
public static void main(String[] s){}
}

我做了编译

C:\UtilityPack>javac List.java

但是当我尝试运行时

C:\UtilityPack>java -classpath . List

或者

C:\UtilityPack>java List

我收到错误

Exception in thread "main" java.lang.NoClassDefFoundError: List (wrong name: Uti
lities/List)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

过去 3 小时我一直在尝试执行该程序,但没有任何效果。.请帮忙

最佳答案

您需要完全限定的名称,例如

java -cp . Utilities.List

即您告诉 JVM 从当前直接 (-cp .) 中查找类 Utilities.List,它会在文件 Utilities\中查找该类List.class.

为了更加一致,您应该将 .java 文件放在 Utilities 目录下(是的 - 这是同义反复 - 包指定了这一点,但这是一致的做法)。

我也会避免调用您的类List。在某个阶段,您将导入一个java.util.List,这一切都会变得非常困惑!

最后,一旦您获得了超过几个类(class),请调查 ant或其他构建工具,并将您的目标目录分开。

关于java - 为什么 NoClassDefFoundError 的名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14221045/

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