编译基本Hello World程序时抛出ClassNotFoundException

时间:2010-07-27 17:45:02

标签: java windows-7 javac jdk1.6

我只是想编译并运行一个非常简单的测试程序,但它根本不起作用,我不知道问题是什么。

我有一个已经堆积在我身上的java项目,我对java几乎一无所知。特别是从windows命令行编译。

我有两个Jars需要编译一个简单的“hello world”程序。

这是我的“build.bat”

C:\jdk1.6.0_21\bin\javac -cp "C:\Users\FREYERA\Desktop\Test";"C:\Users\FREYERA\Desktop\Test\test1.jar";"C:\Users\FREYERA\Desktop\Test\test2.jar"; "C:\Users\FREYERA\Desktop\Test\sample.java"

然后,我:

C:\jdk1.6.0_21\bin\java sample

这会吐出错误:

  

线程“main”中的异常java.lang.NoClassDefFoundError:sample   引起:   抛出java.lang.ClassNotFoundException:   样品           在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)           在java.security.AccessController.doPrivileged(Native   方法           在java.net.URLClassLoader.findClass(URLClassLoader.java:190           at java.lang.ClassLoader.loadClass(ClassLoader.java:307)           在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:           在java.lang.ClassLoader.loadClass(ClassLoader.java:248)

无论我如何设置我的课程路径,我都无法为我的生活获得这个HELLO WORLD计划。

有人可以帮帮我吗?我把头发拉了出来。

3 个答案:

答案 0 :(得分:1)

从包含类中的目录运行程序:

C:\Users\FREYERA\Desktop\Test\>java sample

CLASSPATH(通常)包括当前目录。

如果当前目录中有“sample.class”,并且还需要test1.jar和test2.jar中的类,则应该可以使用:

java -cp "test1.jar;test2.jar;." sample

答案 1 :(得分:1)

您还可以指定解释器的类路径以查找您的类:

java -classpath "C:\Users\FREYERA\Desktop\Test";"C:\Users\FREYERA\Desktop\Test\test1.jar";"C:\Users\FREYERA\Desktop\Test\test2.jar"; Sample

这将从任何工作目录运行您的类。

答案 2 :(得分:0)

运行此命令

C:\ jdk1.6.0_21 \ bin \ javac -cp“C:\ Users \ FREYERA \ Desktop \ Test”;“C:\ Users \ FREYERA \ Desktop \ Test \ test1.jar”;“C:\用户\ FREYERA \桌面\测试\ test2.jar“; “C:\用户\ FREYERA \桌面\测试\ sample.java”

它会在此位置创建一个.class文件“C:\ Users \ FREYERA \ Desktop \ Test \”。即sample.class

您需要转到此文件夹位置并运行java命令来执行该程序。确保已设置“JAVA_HOME”环境变量。

或者您可以将sample.class文件复制到“C:\ jdk1.6.0_21 \ bin \”文件夹并运行命令。