Java Error: please install JCE Unlimited Strength Jurisdiction Policy files
Java Error: please install JCE Unlimited Strength Jurisdiction Policy files
我正在开发这个 Java 应用程序,它需要访问 "JCE Unlimited Strength" 文件,我确实已经安装了它们,并且在我构建解决方案(在 Intellij 中)时它可以正常工作但是当我制作一个 jar
输出,出于某种原因它给了我这个烦人的错误:
C:\Users\h\whatever\out\artifacts\Accepter_jar>java -cp Accepter.jar Main
org.apache.poi.EncryptedDocumentException: Export Restrictions in place - please install JCE Unlimited Strength Jurisdic
tion Policy files
at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:208)
at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:182)
at org.apache.poi.poifs.crypt.agile.AgileDecryptor.hashInput(AgileDecryptor.java:269)
at org.apache.poi.poifs.crypt.agile.AgileDecryptor.verifyPassword(AgileDecryptor.java:116)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:95)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:282)
at ExcelJob.loadExcelSheet(ExcelJob.java:22)
at Main.main(Main.java:17)
知道问题出在哪里吗?
我遇到过类似的问题,但使用的是 eclipse 而不是 Intellij。
这可能是 jdk(多个版本)和 jre 的问题。转到您的 C:\Program Files\Java 目录,在 security[= 中添加新下载的 JCE jar(取决于 Java 版本) 14=] 您已安装的每个 JDK 和 JRE 的文件夹。
在 Windows 安装无限强度策略文件是一项烦人的任务,尤其是在每次 JDK/JRE 更新后你都必须重新安装。
因此,我创建了一个 Windows 批处理文件,可以自动安装所有已安装的 64 位 Java 8 JRE 和 JDK:
@Echo Off
FOR /D %%G in ("%ProgramFiles%\Java\jdk*.*") DO (Echo Upgrading JDK %%G & "C:\Program Files-Zipz.exe" e -ir!*.jar -aoa -o"%%G\jre\lib\security" "%~dp0jce_policy-8.zip" > NUL:)
FOR /D %%G in ("%ProgramFiles%\Java\jre*.*") DO (Echo Upgrading JRE %%G & "C:\Program Files-Zipz.exe" e -ir!*.jar -aoa -o"%%G\lib\security" "%~dp0jce_policy-8.zip" > NUL:)
pause
- Downloaded from Oracle 文件
jce_policy-8.zip
。
- 将上面的脚本文本保存到文本文件中,例如将其命名为
jce_policy-8_install.cmd
。将其放入与 jce_policy-8.zip
. 相同的目录中
- 现在在 Windows 资源管理器中右键单击
jce_policy-8_install.cmd
文件,然后 select "Run as administrator"。
请注意脚本需要 7zip 64 bit 安装到默认路径 (C:\Program Files-Zip
)。
当 运行ning nebeans 你会在清理和构建程序时知道 JAVA_HOME 路径,那时候你会知道 java 路径在哪里
如果您正在使用 linux
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载这个jar文件并先解压,你会发现local_policy和US_export.jar文件你需要将这两个文件复制到你的
/usr/local/jdk1.8.0_151/jre/lib/security/ 把它复制到这里它会要求覆盖说是。然后重新 运行 你的 netbeans
我正在开发这个 Java 应用程序,它需要访问 "JCE Unlimited Strength" 文件,我确实已经安装了它们,并且在我构建解决方案(在 Intellij 中)时它可以正常工作但是当我制作一个 jar
输出,出于某种原因它给了我这个烦人的错误:
C:\Users\h\whatever\out\artifacts\Accepter_jar>java -cp Accepter.jar Main
org.apache.poi.EncryptedDocumentException: Export Restrictions in place - please install JCE Unlimited Strength Jurisdic
tion Policy files
at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:208)
at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:182)
at org.apache.poi.poifs.crypt.agile.AgileDecryptor.hashInput(AgileDecryptor.java:269)
at org.apache.poi.poifs.crypt.agile.AgileDecryptor.verifyPassword(AgileDecryptor.java:116)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:95)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:282)
at ExcelJob.loadExcelSheet(ExcelJob.java:22)
at Main.main(Main.java:17)
知道问题出在哪里吗?
我遇到过类似的问题,但使用的是 eclipse 而不是 Intellij。 这可能是 jdk(多个版本)和 jre 的问题。转到您的 C:\Program Files\Java 目录,在 security[= 中添加新下载的 JCE jar(取决于 Java 版本) 14=] 您已安装的每个 JDK 和 JRE 的文件夹。
在 Windows 安装无限强度策略文件是一项烦人的任务,尤其是在每次 JDK/JRE 更新后你都必须重新安装。
因此,我创建了一个 Windows 批处理文件,可以自动安装所有已安装的 64 位 Java 8 JRE 和 JDK:
@Echo Off
FOR /D %%G in ("%ProgramFiles%\Java\jdk*.*") DO (Echo Upgrading JDK %%G & "C:\Program Files-Zipz.exe" e -ir!*.jar -aoa -o"%%G\jre\lib\security" "%~dp0jce_policy-8.zip" > NUL:)
FOR /D %%G in ("%ProgramFiles%\Java\jre*.*") DO (Echo Upgrading JRE %%G & "C:\Program Files-Zipz.exe" e -ir!*.jar -aoa -o"%%G\lib\security" "%~dp0jce_policy-8.zip" > NUL:)
pause
- Downloaded from Oracle 文件
jce_policy-8.zip
。 - 将上面的脚本文本保存到文本文件中,例如将其命名为
jce_policy-8_install.cmd
。将其放入与jce_policy-8.zip
. 相同的目录中
- 现在在 Windows 资源管理器中右键单击
jce_policy-8_install.cmd
文件,然后 select "Run as administrator"。
请注意脚本需要 7zip 64 bit 安装到默认路径 (C:\Program Files-Zip
)。
当 运行ning nebeans 你会在清理和构建程序时知道 JAVA_HOME 路径,那时候你会知道 java 路径在哪里
如果您正在使用 linux http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 下载这个jar文件并先解压,你会发现local_policy和US_export.jar文件你需要将这两个文件复制到你的 /usr/local/jdk1.8.0_151/jre/lib/security/ 把它复制到这里它会要求覆盖说是。然后重新 运行 你的 netbeans