这是我从Core Java Volume 1-Fundamentals复制粘贴的代码。我只是了解概念,并且喜欢看它是否可以编译。当我进入...

javac SimpleFrameTest.java


在终端,它可以编译。但是当我打字

java SimpleFrameTest


我收到以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: SimpleFrameTest (wrong name: simpleFrame/SimpleFrameTest)


这是实际的Java代码。请让我知道我是否应该做一些不同的事情。

package simpleFrame;

import java.awt.*;
import javax.swing.*;

public class SimpleFrameTest
{
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                SimpleFrame frame = new SimpleFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}

class SimpleFrame extends JFrame
{
    private static final int DEFAULT_WIDTH = 30;
    private static final int DEFAULT_HEIGHT = 200;

    public SimpleFrame()
    {
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    }
}

最佳答案

抱歉,我想念这个问题,这是为什么

java SimpleFrameTest


无法正常工作并引发以下错误


  错误的名称:simpleFrame / SimpleFrameTest


是因为如您所见,您的SimpleFrameTest是某个软件包的一部分,在这种情况下为“ simpleFrame”。因此,要运行此类,您还需要在命令中包括软件包名称,例如

java simpleFrame.SimpleFrameTest


Java包(simpleFrame)是一种将Java类组织到名称空间中的机制

10-02 21:59