当前位置: 首页 > 面试题库 >

为什么用NoClassDefFoundError命名错误

夏飞跃
2023-03-14
问题内容

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

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从当前的direct(-cp .)中寻找一个类Utilities.List,它将会在文件中出现Utilities\List.class

为了更加一致,您应该将.java文件放在Utilities目录下(是的-这是互斥的-程序包对此进行了指定,但这是一致的做法)。

我也避免打电话给你的班级List。在某个阶段,您将要导入a java.util.List,这一切都会使您非常困惑!

最后,一旦获得了不止几个类,请研究ant或其他构建工具,并将您的目录sourcetarget目录分开。



 类似资料:
  • 在rxjava中有一些调度器,就像io()、newThread()……,有一个调度器名为“trampoline”,这个调度器用于:创建并返回一个调度器,该调度器将当前线程上的工作排队,以便在当前工作完成后执行。 我不明白为什么这个调度程序命名为“trampoline”,而不是“queue”(或其他名称,如“queue”)。 你也有同样的谜题吗?

  • 我得到一个当我运行我的Java应用程序。典型的原因是什么?

  • 问题内容: 命名函数的返回参数有什么好处? 问题答案: 命名它们有一些好处: 它用作文档。 它们会自动声明并初始化为零值。 如果您有多个返回站点,则更改函数的返回值并不需要全部更改,因为它只会显示“ return”。 还有缺点,主要是很容易通过声明相同名称的变量来意外地遮盖它们。 有效的Go中有一个关于命名结果参数的部分: 可以给Go函数的返回或结果“参数”指定名称,并将其用作常规变量,就像传入参

  • 我试图在Java中将扫描字符串转换为JSONObject,并从JSON Simple导入JSON模块。我已经在构建路径中添加了JSON-simple-1.1.1.jar。然而,当我试图传递内联字符串时。我的内联字符串如下:{“events”:[{“url”:“/操纵多云国家”,“visitorId”:“03c0b5e0-3eeb-382a-8c6d-35e4bb189cf6”,“timestamp

  • 问题内容: 在Python中,有一个名为的内置函数。这用于获取对象的所有属性的列表。 我了解它的作用,但对为什么调用它感到困惑。这个名称与从对象获取属性有什么关系? 问题答案: 它给你一个 目录 对象的所有属性ectory。 这不是文件系统中使用的目录,而是标准用法:名称或数据列表。

  • 问题内容: 我们可以通过两种不同的方式在JavaScript中执行函数表达式: 命名函数表达式(NFE) : 匿名函数表达式 : 而且两个都可以用调用。我真的看不到为什么/何时应该使用匿名函数以及何时应该使用命名函数表达式。他们之间有什么区别? 问题答案: 对于匿名函数表达式,该函数是匿名的从字面上看,它没有名称。您要为其分配变量的变量具有名称,但是该函数没有。 _(更新:这在ES5中是正确的。从