错误:java.lang.NoClassDefFoundError

时间:2018-01-22 16:48:13

标签: java cmd

下面是一个Java游戏,计算机随机选择1到100之间的数字,你需要得到这个数字。我希望它能在Windows控制台上工作,因为我需要在没有Eclipse的另一台计算机上向某人显示我的项目(但是如果它只与Eclipse一起使用,你应该写下你的答案,我会以某种方式管理它以获得Eclipse那里)。它已经编译但是当我想运行它时它不起作用。

这是错误:

    Fehler: Hauptklasse Zahlraten konnte nicht gefunden oder geladen werden
    Ursache: java.lang.NoClassDefFoundError: ratespiel/Zahlraten (wrong name: Zahlraten)

所以基本上它(用德语)说主要类无法找到或被加载。原因是“java.lang.NoClassDefFoundError:ratespiel / Zahlraten(错误的名字:Zahlraten)”

这是我的项目代码:

    package ratespiel;

    import java.util.Random;
    import javax.swing.JOptionPane;

    public class Zahlraten {
        private int zufallszahl;
        private int ratezahl;

        Zahlraten() {
        ratezahl = -1;
        }

        void setZufallszahl(int zahl) {
        zufallszahl = zahl;
        }

        int getZufallszahl() {
        return zufallszahl;
        }

        void setRatezahl(int zahl) {
        ratezahl = zahl;
        }

        int getRatezahl() {
        return ratezahl;
        }

        public static void main(String[] args) {
        Zahlraten spiel = new Zahlraten();
        boolean geraten = false;
        int versuchzealer = 0;
        JOptionPane.showMessageDialog(null, 
               "Erraten Sie eine ganze Zahl aus dem Bereich von 1 bis 100!");
        Random randomGenerator = new Random();
        spiel.setZufallszahl(randomGenerator.nextInt(101));
        while (!geraten) {
            spiel.setRatezahl(Integer.parseInt(
                JOptionPane.showInputDialog("Welche Zahl wird gesucht?")));
        versuchzealer++;
        if (spiel.getRatezahl() < spiel.getZufallszahl()) {
            JOptionPane.showMessageDialog(null, "Ihre Zahl ist zu klein!");
        } else {
            if (spiel.getRatezahl() > spiel.getZufallszahl()) {
                JOptionPane.showMessageDialog(null, "Ihre Zahl ist zu groß!");
            } else {
                geraten = true;
                JOptionPane.showMessageDialog(null,
            "Glückwunsch! Sie haben die Zahl mit "
            + versuchzealer + " Versuchen erraten!"); 
            }
          }
        }
      }
    }

对不起,所有的文字都是用德语写的,如果你需要翻译,请告诉我。

3 个答案:

答案 0 :(得分:1)

我认为问题是你忘记了包

您应该在命令行中使用的是:

javac ratespiel/Zahlraten.java
java ratespiel/Zahlraten

您必须位于包含 ratespiel文件夹且 Zahlraten类的目录中。例如。如果你的班级在/source/raratespiel/Zahlraten.java,你应该从/source

运行命令

答案 1 :(得分:-1)

我刚刚编译了这段代码并且它工作得非常好,当你导出它时可能会出现问题确保你将文件导出为可运行的JAR文件,如果你不想导出必要的文档定义主类的位置。在Eclipse中,您可以通过转到左上角的文件菜单然后单击export来执行此操作,这将显示对话框,然后单击runnable JAR。

enter image description here

答案 2 :(得分:-1)

您需要将其导出为JAR文件。 Jar文件使您的Java代码基本上“编码一个地方,随处运行”,这是使用Java编程语言的好处。

有关如何在eclipse中执行此操作的更多信息,请here