我正在使用带有轨道的jruby。我在我的机器上安装了JDK7。每当我启动我的rails服务器并尝试运行我的应用程序时,我收到的错误为"Illegal key size: possibly you need to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for your JRE"
我在google上搜索,发现我必须下载JDK-7安全策略文件。所以我从here下载了这些文件并将这些文件放到我的java目录路径"C:\Program Files\Java\jdk1.7.0_79\jre\lib\security"
中。我认为这将解决我的问题,但我仍然得到同样的错误。
在粘贴java安全文件夹中的文件时,我收到包含"you will need to provide administration permission to copy this folder"
信息的警告框。我一直在警告框的继续按钮,文件被复制。
我一定错过了什么。
请帮忙
答案 0 :(得分:0)
我使用以下内容创建了一个文件config / initializers / unlimited_strength_cryptography.rb并且有效
if RUBY_PLATFORM == 'java' # Allows the application to work with other Rubies if not JRuby
require 'java'
java_import 'java.lang.ClassNotFoundException'
begin
security_class = java.lang.Class.for_name('javax.crypto.JceSecurity')
restricted_field = security_class.get_declared_field('isRestricted')
restricted_field.accessible = true
restricted_field.set nil, false
rescue ClassNotFoundException => e
# Handle Mac Java, etc not having this configuration setting
$stderr.print "Java told me: #{e}n"
end
end