java jasypt突然崩溃
从昨天起,我的文本加密机(jasypt)无缘无故停止工作。下面是一个代码示例和错误消息。有人知道发生了什么事吗 代码示例:java jasypt突然崩溃,java,jasypt,Java,Jasypt,从昨天起,我的文本加密机(jasypt)无缘无故停止工作。下面是一个代码示例和错误消息。有人知道发生了什么事吗 代码示例: StrongTextEncryptor crypter = new StrongTextEncryptor(); crypter.setPassword("Password"); crypter.encrypt("Test"); 错误消息: Exception in thread &q
StrongTextEncryptor crypter = new StrongTextEncryptor();
crypter.setPassword("Password");
crypter.encrypt("Test");
错误消息:
Exception in thread "main" org.jasypt.exceptions.EncryptionInitializationException: java.lang.ExceptionInInitializerError
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:773)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:566)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:644)
at org.jasypt.util.text.StrongTextEncryptor.encrypt(StrongTextEncryptor.java:107)
at A.main(A.java:8)
Caused by: java.lang.ExceptionInInitializerError
at com.ibm.icu.impl.NormalizerDataReader.<clinit>(NormalizerDataReader.java:300)
at com.ibm.icu.impl.NormalizerImpl.<init>(NormalizerImpl.java:288)
at com.ibm.icu.impl.NormalizerImpl.<clinit>(NormalizerImpl.java:35)
at com.ibm.icu.text.Normalizer$Mode.normalize(Normalizer.java:188)
at com.ibm.icu.text.Normalizer.normalize(Normalizer.java:1177)
at com.ibm.icu.text.Normalizer.normalize(Normalizer.java:1146)
at org.jasypt.normalization.Normalizer.normalizeWithIcu4j(Normalizer.java:205)
at org.jasypt.normalization.Normalizer.normalizeToNfc(Normalizer.java:129)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:718)
... 4 more
Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
at com.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:188)
at com.ibm.icu.impl.ICUDebug.getInstanceLenient(ICUDebug.java:65)
at com.ibm.icu.impl.ICUDebug.<clinit>(ICUDebug.java:69)
... 13 more
线程“main”org.jasypt.exceptions.EncryptionInitializationException:java.lang.ExceptionInInitializeError中的异常
在org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:773)上
位于org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:566)
位于org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:644)
位于org.jasypt.util.text.StrongTextEncryptor.encrypt(StrongTextEncryptor.java:107)
在A.main(A.java:8)
原因:java.lang.ExceptionInInitializeError
位于com.ibm.icu.impl.NormalizerDataReader。(NormalizerDataReader.java:300)
位于com.ibm.icu.impl.NormalizerImpl.(NormalizerImpl.java:288)
位于com.ibm.icu.impl.NormalizerImpl.(NormalizerImpl.java:35)
位于com.ibm.icu.text.Normalizer$Mode.normalize(Normalizer.java:188)
位于com.ibm.icu.text.Normalizer.normalize(Normalizer.java:1177)
位于com.ibm.icu.text.Normalizer.normalize(Normalizer.java:1146)
位于org.jasypt.normalization.Normalizer.normalizeWithIcu4j(Normalizer.java:205)
位于org.jasypt.normalization.Normalizer.normalizeToNfc(Normalizer.java:129)
在org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:718)上
... 4更多
原因:java.lang.IllegalArgumentException:版本号无效:版本号可能为负数或大于255
位于com.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:188)
位于com.ibm.icu.impl.ICUDebug.getInstanceLinent(ICUDebug.java:65)
位于com.ibm.icu.impl.ICUDebug(ICUDebug.java:69)
... 还有13个
问题似乎与icu4j有关(至少在我的案例中是这样)。 在jasypt Github上找到此提交
更新的依赖项和应用程序开始运行。这不是一个直接的答案,但我把它放在这里,以防有人遇到这个问题 使用Java1.8.0_275,我得到了一个
java.lang.ExceptionInInitializerError
运行encrypt.sh
时
Jasypt版本1.9.3使用的是旧版本的icu4j-3.4.4.jar。我将icu4j-3.4.4.jar替换为,然后我可以运行:
/encrypt.sh输入=密码密码=加密算法=PBEWithmd5和DES
没有错误
有关详细信息,请参阅。尽管这与您运行jasypt的方式略有不同,但我建议您更新icu4j.jar并重试。您的jvm版本是什么?自上次更新以来,jasypt已损坏。您解决了此问题吗?我今天看到了这个错误,我不知道,为什么它停止工作了…我没有看到一个包含提交的版本。只是在本地构建吗?实际上,我只是用这个文件替换了我应用程序库目录中的旧icu4j jar文件,并用maven pom执行了以下操作:org.jasypt jasypt 1.9.2 com.ibm.icu icu4j com.ibm.icu icu4j 67.1这对我来说也是绝对合适的。