При работе с другой проблемой (связанной с 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...]
Um, WTF? Единственное изменение заключалось в том, что я переместил файлы orignal 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. Статья подобного названия, найденная здесь, не помогла.