头一个Java问题-找不到Main方法
我已经在互联网上寻找解决方案,但我仍然不明白为什么会收到以下错误消息: 错误:在DrumKit类中找不到Main方法,请定义Main方法 方法为:publicstaticvoidmain(字符串[]args)或JavaFX 应用程序类必须扩展javafx.application.application“ 这是我的密码: java头一个Java问题-找不到Main方法,java,methods,main,Java,Methods,Main,我已经在互联网上寻找解决方案,但我仍然不明白为什么会收到以下错误消息: 错误:在DrumKit类中找不到Main方法,请定义Main方法 方法为:publicstaticvoidmain(字符串[]args)或JavaFX 应用程序类必须扩展javafx.application.application“ 这是我的密码: java class DrumKit { boolean topHat = true; boolean snare = true; void playT
class DrumKit {
boolean topHat = true;
boolean snare = true;
void playTopHat() {
System.out.println("ding ding da-ding");
}
void playSnare() {
System.out.println("bang bang ba-bang");
}
}
DrumKitTestDrive.java
class DrumKitTestDrive {
public static void main(String [] args) {
DrumKit d = new DrumKit();
d.playSnare();
d.snare = false;
d.playTopHat();
if (d.snare == true) {
d.playSnare();
}
}
}
我正在使用InteliJ,输入命令javac DrumKitTestDrive.java
,然后输入javadrumkit.
这是来自Head First Java系列的一个练习,我的答案与书中的答案完全相同。但是我仍然遇到这个错误。包含
main
方法的类必须是public
public class DrumKitTestDrive {
public static void main(String [] args) {
DrumKit d = new DrumKit();
d.playSnare();
d.snare = false;
d.playTopHat();
if (d.snare == true) {
d.playSnare();
}
}
}
有关访问修改器的详细信息,请参见
您还尝试运行没有主方法的类
DrumKit
。您必须运行JavaDrumkittestDrive
包含main
方法的类必须是public
public class DrumKitTestDrive {
public static void main(String [] args) {
DrumKit d = new DrumKit();
d.playSnare();
d.snare = false;
d.playTopHat();
if (d.snare == true) {
d.playSnare();
}
}
}
有关访问修改器的详细信息,请参见
您还尝试运行没有主方法的类
DrumKit
。您必须运行java DrumKitTestDrive
该main
方法在DrumKitTestDrive.java中,而不是在DrumKit.java中。因此,您必须键入java DrumKitTestDrive
才能运行该程序
请注意,与其他答案所声称的相反,具有
main
的类必须是public
,这绝对不是强制性的。但是,main
方法必须是public
。请参阅Java语言规范。顺便说一句,在JLS的大多数示例中,类没有修饰符。这一点已由.解决,main
方法在DrumKitTestDrive.java中,而不是在DrumKit.java中。因此,您必须键入java DrumKitTestDrive
才能运行该程序
请注意,与其他答案所声称的相反,具有
main
的类必须是public
,这绝对不是强制性的。但是,main
方法必须是public
。请参阅Java语言规范。顺便说一句,在JLS的大多数示例中,类没有修饰符。这一点已经由。@KOF您能解释一下为什么不接受我的回答吗?我只能猜测,但您的第一句话是错的。@bastet您为什么这么认为?有趣的问题。好吧,打开JLS,查找“public static void main”(“public static void main”)并数一数有多少类是“public”的。我当然更愿意为您指出正确的章节,但我没有发现它有明确的说明(当然也没有相反的说明):唯一规定的约束是main
必须是公共的。但是,规范中的几十个示例对我来说已经足够好了。我还可以问:为什么让你认为你是对的?@bastet:我还可以问:为什么让你认为你是对的?很抱歉,我问了你。我从来没有使用过没有公共修饰符的主类。@KOF你能解释一下吗你为什么不接受我的答案?我只能猜测,但你的第一句话是错的。@bastet你为什么这么认为?有趣的问题。好吧,打开JLS,查找“public static void main”(“public static void main”)并数一数有多少类是“public”的。我当然更愿意给你指出正确的章节,但我没有发现它被清楚地表述(当然也不是相反):唯一声明的约束是main
必须是公共的。然而,规范中的几十个示例对我来说已经足够好了。我还可以问:为什么让你认为你是对的?@bastet:我还可以问:为什么让你认为你是对的?对不起,我问了你。我从未使用没有公共修饰符的主类。