众所周知,如果采用Java -classpath,可以允许用户指定其他的Jar包或者class文件的位置。
比如java -classpath lib/*.jar ABC.class
但是如果采用了-jar参数,-classpath的功能就会被屏蔽。java的加载器会旨在指定的jar文件里面寻找需要的类。比如
java -classpath lib/*.jar -jar ABCD.jar,我们的本意是要运行ABCD.jar文件里面的main函数类,而且这个类依赖lib目录下的那些jar文件,着用的结果就会导致类似下面的错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook、
无论你怎么设置classpath,都不会work。