Ответ 1
Вместо того, чтобы смешивать версии среды выполнения и файлы политик, вы должны использовать файлы политики для Java 7.
При работе с другой проблемой (связанной с 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. Статья подобного названия, найденная здесь, не помогла.
Вместо того, чтобы смешивать версии среды выполнения и файлы политик, вы должны использовать файлы политики для Java 7.
Это происходит, когда версия Java не соответствует версии файлов политики. Вы можете загрузить соответствующие файлы политики из следующих ссылок.
Ящики политики для Java 8
Ящики политики для Java 7
Баки политики для Java 6
Это может произойти, если в пути к классам есть стандартные файлы jar политики. Я предлагаю найти и заменить все файлы local_policy.jar и us_export_policy.jar неограниченными версиями этих баннеров на вашем компьютере. Если вы используете IBM WAS/Portal Server/RAD, вот ссылка на неограниченную политику JCE jars.
Возможно, у вас разные версии JDK. Например, если ваш JAVA_HOME указывает на версию 7, но на вашем пути версия 6 появляется до версии 7, эта ошибка может появиться.