我在2天前问了一个问题,并没有收到有效的答案。所以我以更加详细的方式再次提出这个问题。 问题是,我无法通过命令提示符运行java代码。我设置了环境变量。
java -version
和javac -version
的结果:
E:\AG's Stuff\Coding\Java>java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b16)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
E:\AG's Stuff\Coding\Java>javac -version
javac 1.7.0_25
所有教程都说这样做:
C : > javac MyFirstJavaProgram.java
C : > java MyFirstJavaProgram
Hello World
我的程序名为Test.java。该计划的内容是:
public class Test{
public static void main(String args[]){
for(int a=0;a<=10;a++)
{
System.out.print(a+"\n");
}
}
}
当我尝试运行它时,会发生这种情况:
E:\AG's Stuff\Coding\Java>javac test.java
E:\AG's Stuff\Coding\Java>java test
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: Tes
t)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
上一个问题有一些与软件包有关的回复,但我想知道为什么这么简单的代码需要包和东西..
此代码也完美适用于在线代码运行器,所以我假设问题不是代码本身的错误。
那么我做错了什么?
答案 0 :(得分:9)
java Test // Capital T not small t in test
因为您的班级名称为Test
而不是test
同时将文件另存为Test.java
,而不是test.java
,因为您的班级名称是公开的,因此file name
应与class Name
相同
注意:请不要怀疑,只是读出异常,它响亮而清晰!!