El siguiente es un juego de Java donde la computadora elige aleatoriamente un número del 1 al 100 y usted necesita obtener ese número. Quiero que funcione en la consola de Windows porque necesito mostrarle a alguien mi proyecto en otra computadora donde no hay Eclipse (pero si solo va con Eclipse, también debe escribir su respuesta, lo manejaré de alguna manera para obtener Eclipse allí). Ya está compilado pero no funciona cuando quiero ejecutarlo.

Este es el error:

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

Básicamente, dice (en alemán) que la clase principal no se puede encontrar ni cargar. El motivo es "java.lang.NoClassDefFoundError: ratespiel / Zahlraten (nombre incorrecto: Zahlraten)"

Aquí está mi código para el proyecto:

    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!"); 
            }
          }
        }
      }
    }

Lamento que todo el texto esté escrito en alemán, si necesita una traducción, hágamelo saber.

-5
Julian Queisser 22 ene. 2018 a las 19:48

3 respuestas

La mejor respuesta

Acabo de compilar este código y funcionó perfectamente bien. Puede ser un problema cuando lo exporta, asegúrese de exportar el archivo como un archivo JAR ejecutable, si no lo hace, no exportará la documentación necesaria que define dónde está la clase principal es. en Eclipse puede hacer esto yendo al menú de archivo en la esquina superior izquierda, luego haga clic en exportar, lo que abrirá el diálogo a continuación, luego haga clic en JAR ejecutable.

enter image description here

-1
Alex Finch 22 ene. 2018 a las 16:59

Creo que el problema es que olvidas el paquete

Lo que debe usar en la línea de comando es:

javac ratespiel/Zahlraten.java
java ratespiel/Zahlraten

Debe estar en un directorio que contiene la carpeta ratespiel y no la clase Zahlraten. P.ej. si su clase está en /source/raratespiel/Zahlraten.java, debe ejecutar comandos desde /source

1
Admit 22 ene. 2018 a las 17:14

Necesita exportar esto como un archivo JAR. Los archivos Jar permiten que su código Java esencialmente 'codifique un lugar, se ejecute en cualquier lugar', lo cual es una ventaja de usar el lenguaje de programación Java.

Más información sobre cómo hacer esto en eclipse es aquí

-1
Kleo G 22 ene. 2018 a las 16:53
48386480