gpt4 book ai didi

java.lang.NoClassDefFoundError Main(错误名称: com/leslie/quiz/Main)

转载 作者:行者123 更新时间:2023-12-01 23:36:11 25 4
gpt4 key购买 nike

我有三门课。主要、核心和开始。这是主要代码:

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

}

我正在运行 cmd,并将目录更改为所有类所在的包。当我通过输入“java Main”运行 Main 时,我得到

java.lang.NoClassDefFoundError Main (Wrong Name : com/leslie/quiz/Main)

我读到的一件事是,问题可能是由从包内部调用该类引起的?它不是很详细,当我从程序主文件夹中运行该程序时,它做了同样的事情。如果我在 Eclipse 中运行该程序,它运行良好并且没有显示任何错误。我知道 eclipse 使用不同的编译器。但我尝试过的都不起作用。任何帮助都会很棒。谢谢。 :)

最佳答案

由于您的 Main 类位于 com.leslie.quiz 包中,因此您应该 cd 到编译输出的父目录并运行命令:

java com.leslie.quiz.Main

请注意,Eclipse 中的默认二进制输出目录是项目的 bin 目录。尽管它在 Eclipse 的 Package Explorer View 中是隐藏的,但它仍然存在于文件系统中。您应该能够从 Eclipse 的 Navigator View 中看到它。

bin 的内容将如下所示:

bin/
com/
leslie/
quiz/
Core.class
Main.class
Start.class

在本例中,cd 到 bin 并运行 java 命令。

关于java.lang.NoClassDefFoundError Main(错误名称: com/leslie/quiz/Main),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645811/

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