之前一直都是用的集成开发环境,突然用回命令行编译时发现存在jar包依赖的问题,中间踩了很多坑,今天总结一下。
首先是使用javac编译时需要指定依赖的jar包
这里以Test.java为例
这里需要在编译时指定依赖,命令如下所示
javac -encoding UTF-8 -classpath .;D:\javaJAR\algorithm4\algs4.jar Test.java
在解决了编译问题后来到了最大的一个坑,就是执行时就是找不到主类。如下所示。需要注意的是执行时也需要指定依赖,不然会产生NoClassDerFoundError错误。
命令如下
java -cp D:\javaJAR\algorithm4\algs4.jar; Test
image.png
查看代码发现Test中有package
通过网上收集大家的经验,发现这里应该指定的类名为 algorithm.chapter1.Test,并且要回到algorithm的父目录下输入命令。
java -cp D:\javaJAR\algorithm4\algs4.jar; algorithm.chapter1.Test
image.png
可以将.改成 /,但是不能改为 \
网友评论