gpt4 book ai didi

java - 为什么在 Linux 中从命令行运行 Java 类文件时会出现 NoClassDefFoundError?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:33 25 4
gpt4 key购买 nike

我正在尝试从 linux 命令行运行一个 test.class 文件。我使用生成 test.class 文件的 javac test.java 编译文件。当我运行命令 java test 时,它会抛出一个未找到类的异常。我也尝试指定包名,结果相同。这是输出,有人可以帮忙吗?根据 Google 搜索,我相信我的语法是正确的。

[root@localhost usr]# java test
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: testJava/test)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: test. Program will exit.

最佳答案

您需要使用 javac 编译您的 .java 文件:

  javac MyFile.java

然后使用java运行文件

  java MyFile

如果你正在这样做但它仍然不起作用,这意味着你需要确保文件和文件中的类名具有相同的名称......所以 MyFile.java 包含

  class MyFile
{
// ...
public static void main(String[] args)
{
// ...
}
// ...
}

关于java - 为什么在 Linux 中从命令行运行 Java 类文件时会出现 NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069067/

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