我有两个类,当我把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();
}
}
}
此格式错误
对比分析
以下工程罚款:
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");
}
}
8条答案
按热度按时间nkhmeac61#
使用以下命令编译代码后:
运行java
.class
文件,只需指定fileName
而不指定.java
扩展名如果你使用
fileName.java
,它不会运行特定的.class
文件;它将尝试到解释这.java
文件.如果你想要到解释一个.java
文件然后父类必须包含这main(String[])
方法.pwuypxnk2#
首先,你必须使用
javac
编译文件。然后,你必须运行文件。写入main的类名。
balp4ylt3#
您可以通过两种方式运行java程序。
1.直接运行java程序
在这种类型中,编译和执行发生在运行时。也就是说,字节码被生成并立即执行(作为解释器工作)。因此,您必须首先使用超类(包含主方法),然后使用其他复合类。
**注意:**不会生成.class文件。这意味着,它将在内部生成字节码并执行。程序员无法查看类文件。
1.在第二种类型中,首先,您应该编译,
它将生成example_program.class。然后,使用以下命令执行类文件:
在这里,写类的顺序并不影响。你可以按任何顺序写类。它会工作得很好。
yk9xbfzb4#
我把它分成了两个文件,并在类/方法中添加了public和boolean,现在代码运行了。
pxiryf3j5#
在一些JDK中,JVM首先关注入口点函数,因为它需要先写,然后再写其余的代码。因为主函数是我们的入口点函数,所以它必须先写。
yiytaume6#
gk7wooem7#
我知道你的问题了。
首先,检查您在环境变量中设置的类路径
请按照以下步骤操作:
****第1步:右键单击此电脑--〉高级系统设置--〉环境变量
****第2步:*编辑变量classpath并添加新路径或编辑已设置的旧路径。路径应为: * C:\程序文件\Java主目录\jdk ..\lib;.;**备注:.""必须在分号(;).
****步骤3:***关闭CMD,然后再次打开。
****步骤4:***现在使用javac命令编译:
javac FileName.java
****步骤5:***使用java命令运行代码:
java ClassName
就这样...
wwwo4jvm8#
试着在代码中先放“public static void main”类,然后再放其他方法,肯定会起作用的。