繁体   English   中英

为什么在尝试运行我的应用程序时会收到 NoClassDefFoundError?

[英]Why do I get a NoClassDefFoundError when trying to run my application?

好的,所以我正在制作一个简单的 Java class ,它只会打印出“Hello。”:这是代码:

public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("Hello!");
    }
}

我通过命令提示符编译了 class,然后,当我想运行它时,它给了我一个 NoClassDefFoundError 提示类路径有问题。 这真的很愚蠢,因为它是一个类程序。 我尝试了很多东西,但似乎没有任何东西可以解决问题。

我怎样才能解决这个问题?

你还没有展示你是如何运行代码的。 我的猜测是你跑了:

java Hello.class

它试图运行一个名为Hello.classHello.class class 刚刚命名为Hello ,因此您需要:

java Hello

如果您还没有设置 CLASSPATH 环境变量,那应该没问题。 否则,将其设置为包含. 或在命令行中指定:

java -cp . Hello

当然,这是假设您首先使用如下命令编译代码:

javac Hello.java

您设置了环境变量 CLASSPATH,但它不包含“。” (点)表示当前目录(默认情况下)。像这样运行:

java -cp . Hello

那是“java space dash cp space dot space Hello”。

一旦你通过“Hello, World”,你会发现设置 class 路径一直都是必要的——无论是像这样手动(很少,在现实世界中)还是在启动脚本、构建工具或 IDE .

使用 CLASSPATH 环境变量是 Java 早期遗留下来的一种不好的做法。 通常,您会发现是 Apple 的 QuickTime 安装程序将其设置为某些内容。 你永远不应该使用或依赖这个变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM