J'ai trois classes. Principal, Core et Start. Voici le code principal:java.lang.NoClassDefFoundError Main (Nom incorrect: com/leslie/quiz/Main)
package com.leslie.quiz;
public class Main {
public static void main(String[] args) {
com.leslie.quiz.Start.main(null);
}
}
Voici le code de base:
package com.leslie.quiz;
public class Core {
public void coldlunch() {
}
public void hotlunch() {
}
}
Voici le code pour le démarrage:
package com.leslie.quiz;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Start {
com.leslie.quiz.Core core = new Core();
float opacity = 1;
private JFrame frmCafeteriaQuiz;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Start window = new Start();
window.frmCafeteriaQuiz.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Start() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmCafeteriaQuiz = new JFrame();
frmCafeteriaQuiz.setTitle("Cafeteria Quiz");
frmCafeteriaQuiz.setResizable(false);
frmCafeteriaQuiz.setBounds(100, 100, 471, 331);
frmCafeteriaQuiz.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel lblWelcomeToThe = new JLabel("Welcome to the Cafeteria Quiz! Are you a responsible hawk?");
frmCafeteriaQuiz.getContentPane().add(lblWelcomeToThe, BorderLayout.NORTH);
JButton btnIHaveCold = new JButton("I have Cold Lunch");
btnIHaveCold.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
core.coldlunch();
}
});
frmCafeteriaQuiz.getContentPane().add(btnIHaveCold, BorderLayout.WEST);
JButton btnIHaveHot = new JButton("I have Hot Lunch");
btnIHaveHot.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
core.hotlunch();
}
});
frmCafeteriaQuiz.getContentPane().add(btnIHaveHot, BorderLayout.EAST);
}
}
Je suis en cours d'exécution cmd, et changer le répertoire au paquet où toutes mes classes sont. Quand je cours principal en tapant « java principal » Je reçois
java.lang.NoClassDefFoundError Main (Wrong Name : com/leslie/quiz/Main)
Une chose que j'ai lu est que le problème pourrait être dû à l'appel de la classe à l'intérieur du paquet? Ce n'était pas très détaillé et quand j'ai lancé le programme dans le dossier principal des programmes, il a fait la même chose. Si je lance le programme en éclipse, cela fonctionne très bien et ne montre aucune erreur. Et je suis conscient que eclipse utilise un compilateur différent. Mais rien que j'ai essayé fonctionne. Toute aide est la bienvenue. Merci. :)
cela se produit généralement si vous référencez une bibliothèque externe mais que vous ne l'ajoutez pas au chemin de construction – sha256
Il vaudra mieux afficher la pile, c'est-à-dire le message * java.lang.ClassNotFoundError: some.package.which.TheClassNotFound *. –
Exécutez-vous ceci à partir de la ligne de commande? Si oui, veuillez fournir vos commandes pour compiler/exécuter votre programme. Je parie que vous n'êtes pas en cours d'exécution à partir du répertoire racine du package ou que vous ne définissez pas le chemin de classe correctement. – Asaph