[英]Can't find main(String[]) method in class: TapeDeck. The main method is in the other class which runs the program
我有两个班级。 当我将 class TapeDeckTestDrive 首先放在文本编辑器上时,它运行良好。 当我把TestDrive class放在第一位时,报错找不到主class,这是为什么呢?
class TapeDeck {
boolean canRecord = false;
void playTape(){
System.out.println("tape playing");
}
void recordTape(){
System.out.println("tape recording");
}
}
class TapeDeckcTestDrive{
public static void main(String[] args){
TapeDeck t = new TapeDeck();
t.canRecord = true;
t.playTape();
if (t.canRecord == true) {
t.recordTape();
}
}
}
此格式错误
VS
以下工作正常:
class TapeDeckcTestDrive{
public static void main(String[] args){
TapeDeck t = new TapeDeck();
t.canRecord = true;
t.playTape();
if (t.canRecord == true) {
t.recordTape();
}
}
}
class TapeDeck {
boolean canRecord = false;
void playTape(){
System.out.println("tape playing");
}
void recordTape(){
System.out.println("tape recording");
}
}
使用命令编译代码后:
javac fileName.java
通过仅指定不带.java
扩展名的fileName
来运行 java .class
文件
java fileName
如果您使用fileName.java
它不会运行特定的.class
文件; 它将尝试解释.java
文件。 如果要解释.java
文件,则父类必须包含main(String[])
方法。
首先,您必须使用javac
编译文件。 然后,您必须运行该文件。
编写 main 的类名。
javac filename.java
java classname
您可以通过两种方式运行 java 程序。
直接运行java程序
java example_program.java
在这种类型中,编译和执行发生在运行时。 即立即生成并执行字节码(作为解释器工作)因此,您必须首先使用超类(包含 main 方法),然后再使用其他复合类。
注意:不会生成 .class 文件。 这意味着,它将在内部生成字节码并执行。 程序员无法查看类文件。
在第二种类型中,首先,您应该编译,
javac example_program.java
它将生成example_program.class 。 然后,使用执行类文件,
java example_program
在这里,编写类的顺序不受影响。 您可以按任何顺序编写类。 它会正常工作。
我将它分成两个文件,并将 public 添加到类/方法以及布尔值中。 现在代码运行。
在某些 JDK 中,JVM 首先处理入口点函数,因此需要先编写它,然后再编写其余代码。 由于 main 函数是我们的入口点函数,因此必须先编写它。
Steps 1.
--You have to compile the File by using javac. Then, You have to Run the file.
--Classname where main is written.
-- javac filename.java
-- java classname
It causing error due to:-
class TapeDeck {
boolean canRecord = false;
void playTape(){
System.out.println("tape playing");
}
void recordTape(){
System.out.println("tape recording");
}
}
class TapeDeckcTestDrive{
public static void main(String[] args){
TapeDeck t = new TapeDeck();
t.canRecord = true;
t.playTape();
if (t.canRecord == true) {
t.recordTape();
}
}
}
--Your tapedeck class doesn't main (String[]).
我有你的问题。
首先,检查您在环境变量中设置的类路径
请按照以下步骤操作:
***第 1 步:*** 右键单击此电脑 --> 高级系统设置 --> 环境变量
***第 2 步:*** 编辑变量类路径并添加新路径或编辑您设置的旧路径。 路径应该是: C:\Program Files\Java_Home\jdk..\lib;.; 注意:“。” 必须在分号 (;) 之后。
***第 3 步:*** 关闭 CMD 并再次打开。
***第 4 步:*** 现在使用 javac 命令编译: javac FileName.java
***第 5 步:*** 使用 java 命令运行您的代码: java ClassName
还有你 go...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.