我只是想编译并运行一个非常简单的测试程序,但它根本不起作用,我不知道问题是什么。
我有一个已经堆积在我身上的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计划。
有人可以帮帮我吗?我把头发拉了出来。
答案 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 \”文件夹并运行命令。