先说说我的遭遇:
以下是我到运行脚本
java -cp lib -Djava.ext.dirs=lib com.test.Test
之前一直运行正常,突然一天报如下错(但本地在eclipse里面运行始终正常)
java.io.IOException: javax.net.ssl.SSLKeyException: RSA premaster secret error
java.io.IOException: java.io.IOException: javax.net.ssl.SSLKeyException: RSA premaster secret error
开始怀疑是jdk问题,重装jdk还是不行。
因为用到httpclient,以为是版本问题,所以修改httpclient为4.0版本,并设置为信任任何网站,还是提示错误,大致是没有访问权限的意思。
无耐之下,开始研究服务器跟本地的区别(因为只有在服务器上才出错,本地是可以的)。jdk比较过了,一样的版本。没道理啊,下载服务器代码本地部署一份(因为本地用ubuntu,所以部署跟服务器一模一样),问题来了,线上到代码在本地也不行了。奇怪。。。。。继续缩小排查范围。比较跟之前在本地能正常运行的程序(因为代码一样,只有部署有稍微差别)。
抱着试一试到态度修改来以下代码:
java -cp lib -Djava.ext.dirs=lib com.test.Test
修改后为:
java -cp lib/test.jar com.test.Test
竟然运行OK啦,奇怪?????算了,先保证能运行再说!
可是问题又来了,我的log4j.xml不能打包到jar里啊,这样修改不方便,怎么加入到运行参数呢???
search。。。。。in。。。。baidu。。。。。。
得到解决方案:
-Dlog4j.configuration=file:/lib/log4j.xml
在修改后的代码追加以上代码,日志打印OK。
研究至此已经解决了本次遇到到问题。但是一想,如果我有多个jar呢?
经过尝试“classpth”是不支持通配符“*”的,所以目前能想到的唯一办法是一个一个追加到后面。
如果有多个配置文件呢?
......
算了,想想都可怕,原来失去”Djava.ext.dirs“这么可怕。。。。。。
抽时间还是算好好研究研究"-cp"和”-Djava.ext.dirs“的加载规则吧。
分享到:
相关推荐
java一般使用两个path:classpath 和 java.library.path classpath是指向jar包的位置 java.library.path是非java类包的位置如(dll,so) 解决办法: 1:LINUX下的系统变量LD_LIBRARY_PATH来添加java.library....
标签:addressing-1.6.0-classpath-module.jar,addressing,1.6.0,classpath,module,jar包下载,依赖包
标签:addressing-1.5.6-classpath-module.jar,addressing,1.5.6,classpath,module,jar包下载,依赖包
标签:addressing-1.6.2-classpath-module.jar,addressing,1.6.2,classpath,module,jar包下载,依赖包
标签:addressing-1.5.2-classpath-module.jar,addressing,1.5.2,classpath,module,jar包下载,依赖包
标签:addressing-1.5.3-classpath-module.jar,addressing,1.5.3,classpath,module,jar包下载,依赖包
标签:addressing-1.6.1-classpath-module.jar,addressing,1.6.1,classpath,module,jar包下载,依赖包
标签:addressing-1.5.5-classpath-module.jar,addressing,1.5.5,classpath,module,jar包下载,依赖包
标签:addressing-1.5.4-classpath-module.jar,addressing,1.5.4,classpath,module,jar包下载,依赖包
NULL 博文链接:https://xienan123.iteye.com/blog/1042124
Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的
翻了n多资料,所什么.so/.dll没有放到正确的路径下啊,又是windows/linux的区别啊,然并卵,前面使用的org.eclipse.swt.win32-3.1版本,换成现在这个4.2版本(我一顿好找),完美跑起,真是蛋疼,另外有些人classpath和java....
Solving the problem was a matter of putting the sunjce_provider.jar in one of the folders specified in the java.ext.dirs parameter. Hard to find, easy to solve. 把sunjce_provider.jar 放到JDKclasspath...
java语言编写的简单模拟ATM机功能案例,有美观的UI界面,和比较完善的功能模块,业务分层,编码格式规范。可供初学者参考。 另在db文件夹中附带两种数据库(mysql、sqlserver)表结构。 项目目录结构: .classpath ....
将申请的Client ID和Client secrets加入到client_secrets.json cd . (当前源码根路径) mkdir bin dir /b/s src\*.java > src.list javac -sourcepath src -d bin -classpath "lib/*;" @src.list copy client_...
Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的
NULL 博文链接:https://wangbing9577.iteye.com/blog/2175197
path的设置时为了,使我们在其他目录下运行java和javac命令的时候,同样可以找到给程序。
.classpath
官方版本,亲测可用