使用GUI时,我应该以不同的方式编译吗?

时间:2013-09-02 21:45:12

标签: java swing

这是我从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);
    }
}

1 个答案:

答案 0 :(得分:2)

抱歉,我错过了阅读问题,之所以这个

java SimpleFrameTest

无效并抛出以下错误

  

错误的名称:simpleFrame / SimpleFrameTest

是因为您可以看到您的SimpleFrameTest是某个包的一部分,在本例中为“simpleFrame”因此,为了运行此类,您还需要在命令中包含packagename,例如

java simpleFrame.SimpleFrameTest

java包(simpleFrame)是一种将Java类组织成命名空间的机制