最近在做java打包运行相关东西,现将关于设置
classpath及系统变量需要注意的地方说一下:
当java -jar xxx.jar,运行一个java包时,如果需要引入第三方jar,设置-classpath或-cp是不好使的,因为-cp和-jar是互相冲突的,用了-jar,classpath参数就被忽略了。
解决如下:
1、都采取参数 -cp 方式解决,jdk6以后支持jar文件
通配符了。不过要注意写法,dir/*,不是dir/*.jar,把你要执行的jar路径合并在-cp参数里,最后需要指定 MainClass。
2、用-Djava.ext.dirs系统变量,指定那个第三方jar的文件夹。这样做会替换掉缺省的java_home/lib/ext下的类包,如果做aes等加解密将会出错,可以用-Djava.ext.dirs=lib;%java_home%\lib\exts来解决。
java -Djava.ext.dirs=lib -jar xxxx.jar