我知道 Java 需要 main 函数,而我有一个。这段代码编译没有错误(这段代码是设计模式书的源代码),但是当我执行时
D:\ java SwingObserverExample
Error: Could not find or load main class SwingObserverExample
这里是源代码:
package headfirst.designpatterns.observer.swing;
import java.awt.*;
import javax.swing.*;
public class SwingObserverExample{
JFrame frame;
public static void main(String[] args) {
SwingObserverExample example = new SwingObserverExample();
example.go();
}
public void go() {
frame = new JFrame();
JButton button = new JButton("Should I do it?");
// Without lambdas
//button.addActionListener(new AngelListener());
//button.addActionListener(new DevilListener());
// With lambdas
button.addActionListener(event ->
System.out.println("Don't do it, you might regret it!")
);
button.addActionListener(event ->
System.out.println("Come on, do it!")
);
frame.getContentPane().add(BorderLayout.CENTER, button);
// Set frame properties
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(BorderLayout.CENTER, button);
frame.setSize(300,300);
frame.setVisible(true);
}
/*
* Remove these two inner classes to use lambda expressions instead.
*
class AngelListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
System.out.println("Don't do it, you might regret it!");
}
}
class DevilListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
System.out.println("Come on, do it!");
}
}
*/
为什么java找不到这个程序的主类?
我的 java 文件的目录是 D:\workplace\Head-First-Design-Patterns-master\Head-First-Design-Patterns-master\src\headfirst\designpatterns\observer\swing
然后我从那里运行 java 命令。
最佳答案
在运行命令中包含包名
java headfirst.designpatterns.observer.swing.SwingObserverExample
Java 还希望在相对于当前位置的目录 headfirst\designpatterns\observer\swing
中找到该类以匹配包名称,因此从中运行应用程序
D:\workplace\Head-First-Design-Patterns-master\Head-First-Design-Patterns-master\src
关于java - 我有 main 但 java 命令不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29218610/