在java中运行框架程序时出错

时间:2015-04-20 02:03:52

标签: java

我编译了程序它没有错误,但在运行时我收到错误:

  

无法找到或加载frame.java

我将程序名称保存为frame.java并运行为java frame.java

import java.awt.*;
import java.awt.event.*;
public class frame extends Frame {

    Label l1, l2, l3, l4, l5, l6;

    frame() {
        super("my frame title");
        setLayout(new FlowLayout());
        l1 = new Label("name");
        l2 = new Label("fathers name");
        l3 = new Label("add");
        l4 = new Label("sex");
        l5 = new Label("course");
        l6 = new Label("hobbies");

        add(l1);
        add(l2);
        add(l3);
        add(l4);
        add(l5);
        add(l6);

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
            }
        }
        );
    }

    public static void main(String a[]) {
        frame o = new frame();
        o.setSize(500, 500);
        o.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:3)

Java源文件被编译为{name} .class。

的文件

但是在运行类文件时,您不需要提供.class前缀,例如......

java frame

您可能遇到的另一个问题是,期望某个类属于某个包,并且您可能难以在默认包中查找/运行类,例如......

package test;
import java.awt.*;
import java.awt.event.*;
public class frame extends Frame {

    Label l1, l2, l3, l4, l5, l6;

    frame() {
        super("my frame title");
        setLayout(new FlowLayout());
        l1 = new Label("name");
        l2 = new Label("fathers name");
        l3 = new Label("add");
        l4 = new Label("sex");
        l5 = new Label("course");
        l6 = new Label("hobbies");

        add(l1);
        add(l2);
        add(l3);
        add(l4);
        add(l5);
        add(l6);

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
            }
        }
        );
    }

    public static void main(String a[]) {
        frame o = new frame();
        o.setSize(500, 500);
        o.setVisible(true);
    }
}

源文件现在需要保存在test目录中,并使用类似的东西进行编译。

javac test\frame.java

使用类似

的方式运行
java test.frame

假设您正在从test目录

的父目录执行

有关详细信息,请参阅Creating and Using Packages

我还建议:

  • 您使用IDE开始,因为它会使过程更简单
  • 您考虑使用Swing或JavaFX而不是基于AWT的类,因为AWT没有与Swing和JavaFX相同的社区支持,这使您可以更轻松地解决将来可能遇到的问题
  • 您已阅读Code Conventions for the Java TM Programming Language,它会让人们更轻松地阅读您的代码并让您阅读其他人