Работая над другой проблемой (связанной с RMI), я обновил системную «папку безопасности» с помощью файлов политики «неограниченная сила», и теперь мое приложение перестало работать по-другому. Я получаю длинный дамп стека, из которого уместны следующие биты:
Exception in thread "main" java.lang.ExceptionInInitializerError
[...crop...]
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:86)
... 17 more
Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!
[...crop...]
Хм, WTF? ЕДИНСТВЕННОЕ изменение заключалось в том, что я отодвинул оригинальные файлы jar и добавил неограниченные в $ JAVA_HOME / lib / security. Этот каталог теперь выглядит так:
$ ls
blacklist javaws.policy trusted.libraries
cacerts local_policy.jar US_export_policy.jar
java.policy local_policy.jar.strong US_export_policy.jar.strong
java.security local_policy.jar.unlimited US_export_policy.jar.unlimited
Конечно, есть версии .strong и .unlimited, поэтому я могу быстро переключиться обратно.
Направления были короткими и простыми, и, похоже, они ТОЛЬКО предусматривают замену этих двух файлов (local_policy.jar и US_exportpolicy.jar).
Что еще можно сделать?
Обратите внимание, что версии java и файлы политики являются самыми младшими на сегодняшний день: 1.7.0_03 и jce_policy-6, соответственно.
P.S. Статья с похожим названием, найденная здесь , вообще не помогла.