Exception in thread "main" java.lang.NoSuchMethodError: main

ourdsky 2009-04-09 03:09:15

生成两个类,运行出现
Exception in thread "main" java.lang.NoSuchMethodError: main,但我检查不出什么错误,请高手指点一下。
import java.awt.*;
class FirstWindow extends Frame
{ MenuBar menubar;
Menu menu;
MenuItem item1,item2;
FirstWindow(String s)
{ setTitle(s);
Toolkit tool=getToolkit();
Dimension dim=tool.getScreenSize();
setBounds(0,0,dim.width,dim.height/2);
menubar=new MenuBar();
menu=new Menu("文件");
item1=new MenuItem("打开");
item2=new MenuItem("保存");
menu.add(item1);
menu.add(item2);
menubar.add(menu);
setMenuBar(menubar);
setVisible(true);

}
}
class FirstWindow1
{ public static void main(String args[])
{ FirstWindow win=new FirstWindow("一个带菜单的窗口");
}
}
...全文
155 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ourdsky 2009-05-06
  • 打赏
  • 举报
回复
感谢给位!按照你们的指点,代码能够运行了。
ZiSheng 2009-04-09
  • 打赏
  • 举报
回复
把class FirstWindow1 前边加上public试试
  • 打赏
  • 举报
回复

import java.awt.*;

import javax.swing.JFrame;

class FirstWindow extends JFrame {//建议你继承JFrame
MenuBar menubar;

Menu menu;

MenuItem item1, item2;

FirstWindow(String s) {
setTitle(s);
Toolkit tool = getToolkit();
Dimension dim = tool.getScreenSize();
setBounds(0, 0, dim.width, dim.height / 2);
menubar = new MenuBar();
menu = new Menu("文件");
item1 = new MenuItem("打开");
item2 = new MenuItem("保存");
menu.add(item1);
menu.add(item2);
menubar.add(menu);
setMenuBar(menubar);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//没这句你把窗体关了,JDK也
//一直在运行着

}
}

public class FirstWindow1 {//这里加上public(你的类文件名应该是:FirstWindow1
public static void main(String args[]) {
FirstWindow win = new FirstWindow("一个带菜单的窗口");



}
}
dreamhunter_lan 2009-04-09
  • 打赏
  • 举报
回复
如4楼所说,只要把文件名命名为有main方法的那个类的名字就行了
可以有多个main函数,比如上面两个类如果都有main
那么敲入java FirstWindow就执行FirstWindow中的main
敲入java FirstWindow1就执行FirstWindow1中的main
根本不需要什么public,不过如果有了一个public class,那么文件名就必须与这个public class的类名相同了
  • 打赏
  • 举报
回复
[Quote=引用楼主 ourdsky 的帖子:]

生成两个类,运行出现
Exception in thread "main" java.lang.NoSuchMethodError: main,但我检查不出什么错误,请高手指点一下。
import java.awt.*;
class FirstWindow extends Frame
{ MenuBar menubar;
Menu menu;
MenuItem item1,item2;
FirstWindow(String s)
{ setTitle(s);
Toolkit tool=getToolkit();
Dimension dim=tool.getScreenSize();
setBounds(0,0,dim.widt…
[/Quote]
你这两个类在一个文件
还是在一个包下

要是在一个文件下,那文件名要为带有main方法的类名作为文件名
  • 打赏
  • 举报
回复
看你的代码的意思应该在 class FirstWindow1 前加 public才对。
qulijian1234 2009-04-09
  • 打赏
  • 举报
回复
看看你的jdk配好没

若配好了 把那个CLASS变为public class FirstWindow1{...}(加个public)

我以为你还看看的JDK环境配好没


在cmd-> javac
看看情况 若说不是系统命令那就说 JDK有问题


捏造的信仰 2009-04-09
  • 打赏
  • 举报
回复
你这是一个文件还是两个文件?为什那么两个 class 都没有 public 修饰符?

只有 public 类中的 main 方法才能执行。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧