У меня есть три класса. Main, Core и Start. Вот код Main:java.lang.NoClassDefFoundError Главная (Неверное имя: com/leslie/quiz/Main)
package com.leslie.quiz;
public class Main {
public static void main(String[] args) {
com.leslie.quiz.Start.main(null);
}
}
Вот код для Ядра:
package com.leslie.quiz;
public class Core {
public void coldlunch() {
}
public void hotlunch() {
}
}
Вот код для запуска:
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);
}
}
Я бегу ЦМД, и изменения каталога в пакет, где все мои классы. Когда я бегу Главное, набрав «Java Main» Я получаю
java.lang.NoClassDefFoundError Main (Wrong Name : com/leslie/quiz/Main)
Одна вещь, которую я прочитал, что эта проблема может быть вызвана вызовом класса внутри пакета? Это было не очень подробно, и когда я запускал программу из основной папки программы, она делала то же самое. Если я запускаю программу в eclipse, она отлично работает и не показывает ошибок. И я знаю, что eclipse использует другой компилятор. Но я ничего не пробовал. Любая помощь будет большой. Благодарю. :)
Это обычно происходит, если вы ссылаетесь на внешнюю библиотеку, но не добавляете ее в путь сборки. – sha256
Лучше будет отображать stacktrace, то есть это сообщение: java.lang.ClassNotFoundError: some.package.which.TheClassNotFound *. –
Вы используете это из командной строки? Если да, просьба указать вашу команду (ы) для компиляции/запуска вашей программы. Я уверен, что вы либо не работаете из корневого каталога пакета, либо не задаете правильный путь к классам. – Asaph