2016-08-01 23 views
0

IDEAを使用してIDEA環境でコードが正常に実行されますが、mvn clean installを使用してプロジェクトをビルドし、このスクリプトでprojetを実行しますAES/CBC/PKCS5Paddingをサポートするプロバイダが見つかりません

#!/bin/bash 


source ~/.bashrc 

JAVA_OPTS="$JAVA_OPTS -Drun_dir=$MY_ROOT" 
JAVA_OPTS="$JAVA_OPTS -server -Xss256k -Xms1g -Xmx1g" 
JAVA_OPTS="$JAVA_OPTS -XX:-OmitStackTraceInFastThrow" 
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m" 
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+UseParNewGC" 
JAVA_OPTS="$JAVA_OPTS -XX:CMSFullGCsBeforeCompaction=4 -XX:CMSInitiatingOccupancyFraction=80 -XX:MaxTenuringThreshold=15" 
JAVA_OPTS="$JAVA_OPTS -Dclient.enczoding.override=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN" 
JAVA_OPTS="$JAVA_OPTS -Djava.ext.dirs=./lib -Djava.library.path=./lib -cp ./resources" 

java $JAVA_OPTS Main 

それは誤り

Cannot find any provider supporting AES/CBC/PKCS5Padding 

JDKのバージョンが同じでくる、誰でも助けることができますか?

+0

にスクリプトを変更 、そうcryptoprovidersはできません利用される。デフォルトには 'localedata.jar'も含まれていますし、' zh-CN'は実行時の基本部分にはないと私は確信しています。 JREは 'java.ext.dirs'がJava定義の拡張機構に使用されることを期待しており、それを他のものに使用すると問題を引き起こす可能性があります。クラスパスはユーザが書いた(または第三者の)コード用です。 –

+0

おかげで、 'CLASSPATH = $ CLASSPATH:'のLS内のjarのための$ JAVA_HOME/libに/ tools.jarを /lib' DO CLASSPATH = $ CLASSPATH:./ libに/ $ジャー。あなたの 'libに/ *' jarファイルはすべて '接尾辞を持っている場合は 行わ JAVA_OPTSは= "$ JAVA_OPTS -cp ./resources" JAVA $ JAVA_OPTS -classpath $ CLASSPATH Main'私はこのようなスクリプトを変更し、それが仕事 – bricks

答えて

0

おかげdave_thompson_085は、あなたが間違った値に含まれるデフォルト値、(ほとんどの)cryptoprovidersから `java.ext.dirs`を変更

source ~/.bashrc 

CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar 

for jar in `ls ./lib` 
do 
    CLASSPATH=$CLASSPATH:./lib/$jar; 
done 
CLASSPATH=$CLASSPATH:./resources 


JAVA_OPTS="$JAVA_OPTS -server -Xss256k -Xms1g -Xmx1g" 
JAVA_OPTS="$JAVA_OPTS -XX:-OmitStackTraceInFastThrow" 
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m" 
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+UseParNewGC" 
JAVA_OPTS="$JAVA_OPTS -XX:CMSFullGCsBeforeCompaction=4 -XX:CMSInitiatingOccupancyFraction=80 -XX:MaxTenuringThreshold=15" 
JAVA_OPTS="$JAVA_OPTS -Dclient.enczoding.override=UTF-8 -Dfile.encoding=UTF-8" 

java $JAVA_OPTS -classpath $CLASSPATH Main 
+0

をしました。 jar '(または' .JAR')であり、ドットで始まる隠しファイルがなく、少なくともJava6(私は5だと思いますが、もはや検証できません)以降、 'CLASSPATH =。/ lib/*: 。/ resources' http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/classpath.html「クラスパスのワイルドカードについて」を参照してください。 –

関連する問題