初学java,书上的一个简单例程,编译通过了,但运行报错,程序如下
public class FirstSample
{
public static void main(String[] args)
{
System.out.println("We will not use 'Hello, World!'");
}
}将此程序用记事本录入保存为FirstSample.java,
用c:\>javac FirstSample.java编译为字节码文件FirstSample.class,成功!
然后用c:\>java FirstSample运行,报如下错误Exception in thread "main" java.lang.NoClassDefFoundError: D:\MyDevTools\corejav
a8\v1ch03\FirstSample\FirstSample
Caused by: java.lang.ClassNotFoundException: D:\MyDevTools\corejava8\v1ch03\Firs
tSample\FirstSample
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: D:\MyDevTools\corejava8\v1ch03\FirstSample\FirstS
ample. Program will exit.
public class FirstSample
{
public static void main(String[] args)
{
System.out.println("We will not use 'Hello, World!'");
}
}将此程序用记事本录入保存为FirstSample.java,
用c:\>javac FirstSample.java编译为字节码文件FirstSample.class,成功!
然后用c:\>java FirstSample运行,报如下错误Exception in thread "main" java.lang.NoClassDefFoundError: D:\MyDevTools\corejav
a8\v1ch03\FirstSample\FirstSample
Caused by: java.lang.ClassNotFoundException: D:\MyDevTools\corejava8\v1ch03\Firs
tSample\FirstSample
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: D:\MyDevTools\corejava8\v1ch03\FirstSample\FirstS
ample. Program will exit.
a8\v1ch03\FirstSample\这里面吗?
a8\v1ch03\FirstSample\要么把 FirstSample.class 放在C\:
cd到那个目录试过了,还是不行to zhu6100441
class文件放在D:\MyDevTools\corejav
a8\v1ch03\FirstSample\ 这个目录下了
package D:\MyDevTools\corejava8\v1ch03\FirstSample
没贴?我真的好奇怪,c:\>javac FirstSample.java 怎么会把类放到d:盘去了?
都贴出来了,没有package那一段
但是还有一个不解,
我的源代码放在D盘的一个文件夹中,
用javac d:\...\FirstSample.java,可以编译成功,编译出的class文件就默认放在了该文件夹中
为什么我再用java d:\...\FirstSample 去执行编译好的字节码文件就不行了呢?为什么一定要把.class文件放在C盘呢?
放到C盘可以了,
但是貌似cd不到D:\MyDevTools\corejav
a8\v1ch03\FirstSample\ 是不是NTFS分区的原因呢???另外还有一个不解,
我的源代码放在D盘的一个文件夹中,
用javac d:\...\FirstSample.java,可以编译成功,编译出的class文件就默认放在了该文件夹中
为什么我再用java d:\...\FirstSample 去执行编译好的字节码文件就不行了呢?为什么一定要把.class文件放在C盘呢?
D:回车
再
cd D:\MyDevTools\corejava8\v1ch03\FirstSample\回车
java -cp "d:\...\" FirstSample
cd /d D:\MyDevTools\corejava8\v1ch03\FirstSample\
是这样写么?
java -cp "D:\MyDevTools\corejava8\v1ch03\FirstSample\" FirstSample好像不行,回车后显示了一个java命令的参数列表。。