我问了两天这个问题,并没有得到一个有效的答案.所以我再以更详细的方式再次问这个问题.问题是,我无法通过命令提示符运行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
Run Code Online (Sandbox Code Playgroud)
那里的所有教程都说这样做:
C : > javac MyFirstJavaProgram.java
C : > java MyFirstJavaProgram
Hello World
Run Code Online (Sandbox Code Playgroud)
我的程序叫做Test.java.该计划的内容是:
public class Test{
public static void main(String args[]){
for(int a=0;a<=10;a++)
{
System.out.print(a+"\n");
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,会发生这种情况:
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)
Run Code Online (Sandbox Code Playgroud)
上一个问题有一些关于包的回复,但我想知道为什么这么简单的代码片段需要包和东西..
这段代码也完美地适用于在线代码运行器,所以我假设问题不是代码本身的错误.
那么我做错了什么?
java Test // Capital T not small t in test
Run Code Online (Sandbox Code Playgroud)
因为你的班级名字Test不是test
同时保存文件Test.java而不是test.java,因为你的类名是公共的,所以file name应该是相同的class Name
注意:请不要怀疑,只是读出异常,它响亮而清晰!
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |