我有两节课。当我将类TapeDeckTestDrive首先放在文本编辑器上时,它运行良好。当我将TestDrive类放在第一位时,它会给出错误,即找不到主类。为什么会这样?
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");
}
}
答案 0 :(得分:1)
使用以下命令编译代码后:
javac fileName.java
仅指定.class
,不带fileName
扩展名来运行Java .java
文件
java fileName
如果您使用fileName.java
,它将不会运行特定的.class
文件;它将尝试解释.java
文件。如果要解释.java
文件,则父类必须包含main(String[])
方法。
答案 1 :(得分:0)
我将其分为两个文件,并将public添加到类/方法以及布尔值中。现在,代码开始运行。
答案 2 :(得分:0)
首先,您必须使用javac
来编译文件。
然后,您必须运行文件。
写main的类名。
javac filename.java
java classname
答案 3 :(得分:0)
您可以通过两种方式运行Java程序。
java example_program.java
直接运行Java程序
在这种类型中,编译和执行在运行时发生。那是
字节码立即生成并执行(用作解释器)
因此,您必须首先使用超类(包含main方法),然后再使用
复合类。 注意: 将不会生成.class文件。这意味着它将在内部生成字节码并执行。程序员无法查看课程文件。
javac example_program.java
。它将生成 example_program.class 。然后,使用java example_program
执行类文件。在这里,编写类的顺序不受影响。您可以按任何顺序编写类。会很好。