今天我尝试通过命令提示符编译我的源代码:
PS ...\JavaDev\Prog> javac -classpath <libs> -d . -sourcepath src src/com/negi/prog/Prog.java
他们成功编译。
但是当我尝试运行它时,会产生错误:
PS ...\JavaDev\Prog> java -classpath com.negi.prog.Prog Exception in thread "main" java.lang.NoClassDefFoundError: com/negi/prog/Prog Caused by: java.lang.ClassNotFoundException: com.negi.prog.Prog
我该如何解决?
答案 0 :(得分:2)
-classpath
中的课程必须由:
PS ...\JavaDev\Prog> java -classpath "<libs>:com.negi.prog.Prog"
要完成答案,不同的操作系统具有不同的类路径分隔符。您可以通过检索java.class.path
属性的值来检查分隔符。
答案 1 :(得分:2)
默认情况下。 (当前路径)包含在类路径中,但如果指定-classpath或-cp,则会覆盖该路径。包括。在你的类路径中:
java -classpath <libs>:. com.negi.prog.Prog
答案 2 :(得分:1)
运行时需要确保当前目录在类路径上。
PS ...\JavaDev\Prog> java -classpath <libs>:. com.negi.prog.Prog