程序在eclipse中可以运行,在脚本(命令行)中报错

来源:互联网 发布:lol淘宝cdk是真的吗 编辑:程序博客网 时间:2024/06/01 08:56

引用:http://blog.csdn.net/cyony/article/details/74375251

   http://blog.csdn.net/scugxl/article/details/43240991


今天遇到的一个问题,程序在eclipse中可以运行,在脚本(命令行)中报错,查找原因,java -Djava.ext.dirs设置有误。

在powershell中执行:

java -D'java.ext.dirs'='..\lib'  DownloadOrderDocumentUtils 

其中-Djava.ext.dirs=..\lib是指定扩展目录路径,也就是引用的jar包路径,但设置了这个路径后,-Djava.ext.dirs会覆盖Java本身的ext设置。也就是覆盖了JAVA_HOME/jre/lib/ext目录。

导致其中的一些功能类找不到,比如说加密解密的类:

java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES
        at javax.crypto.Cipher.getInstance(Cipher.java:540)
        at util.AESUtil.encrypt(AESUtil.java:40)
        at DownloadOrderDocumentUtils.buildCertify_token(DownloadOrderDocumentUtils.java:79)
        at DownloadOrderDocumentUtils.getPathOfDownloadOrderDocument(DownloadOrderDocumentUtils.java:159)
        at DownloadOrderDocumentUtils.main(DownloadOrderDocumentUtils.java:216)


上面这个报错是Cipher类中报错,经过查找后是缺少sunjce_provider.jar,这就有两种解决办法:

解决办法:把JAVA_HOME/jre/lib/ext也加入java.ext.dirs中。

windows powershell:注意cmd和powersheel的命令不同

java -D'java.ext.dirs'='..\lib;C:\Program Files (x86)\Java\jdk1.6.0_13\jre\lib\ext'  DownloadOrderDocumentUtils 






原创粉丝点击