Java “错误”;安装JCE无限强度管辖权策略文件“;

Java “错误”;安装JCE无限强度管辖权策略文件“;,java,excel,passwords,apache-poi,xlsx,Java,Excel,Passwords,Apache Poi,Xlsx,我在java中使用ApachePOI库for Excel。我需要用密码打开xlsx文件。产生此错误的原因:“线程“main”org.apache.poi.EncryptedDocumentException中的异常:导出限制已到位-请安装JCE Unlimited Strength辖区策略文件”。我试着安装这个文件。但这并没有解决问题 public static void ReadFromExcell(String file) throws IOException, GeneralSecurit

我在java中使用ApachePOI库for Excel。我需要用密码打开xlsx文件。产生此错误的原因:“线程“main”org.apache.poi.EncryptedDocumentException中的异常:导出限制已到位-请安装JCE Unlimited Strength辖区策略文件”。我试着安装这个文件。但这并没有解决问题

public static void ReadFromExcell(String file) throws IOException, GeneralSecurityException {
    String excelFilePath = "ServerList.xlsx";

    try {
        NPOIFSFileSystem fileSystem = new NPOIFSFileSystem(new File(excelFilePath));
        EncryptionInfo info = new EncryptionInfo(fileSystem);
        Decryptor decryptor = Decryptor.getInstance(info);

        if (!decryptor.verifyPassword("qwerty")) {
            System.out.println("Unable to process: document is encrypted.");
            return;
        }

        InputStream dataStream = decryptor.getDataStream(fileSystem);

        Workbook workbook = new XSSFWorkbook(dataStream);
        Sheet firstSheet = workbook.getSheetAt(0);
        Iterator<Row> iterator = firstSheet.iterator();

        while (iterator.hasNext()) {
            Row nextRow = iterator.next();
            Iterator<Cell> cellIterator = nextRow.cellIterator();

            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
                System.out.print(cell.getStringCellValue() + "\t");
            }
            System.out.println();
        }

        workbook.close();
        dataStream.close();
        fileSystem.close();
    } catch (GeneralSecurityException | IOException ex) {
        ex.printStackTrace();
    }
}
public static void ReadFromExcell(字符串文件)抛出IOException、GeneralSecurityException{
字符串excelFilePath=“ServerList.xlsx”;
试一试{
NPOIFSFileSystem fileSystem=新的NPOIFSFileSystem(新文件(excelFilePath));
EncryptionInfo=新的EncryptionInfo(文件系统);
Decryptor Decryptor=Decryptor.getInstance(信息);
如果(!decryptor.verifyPassword(“qwerty”)){
System.out.println(“无法处理:文档已加密”);
返回;
}
InputStream数据流=decryptor.getDataStream(文件系统);
工作簿=新XSSF工作簿(数据流);
Sheet firstSheet=工作簿。getSheetAt(0);
迭代器迭代器=firstSheet.Iterator();
while(iterator.hasNext()){
行nextRow=iterator.next();
迭代器cellIterator=nextRow.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
System.out.print(cell.getStringCellValue()+“\t”);
}
System.out.println();
}
workbook.close();
dataStream.close();
close();
}捕获(一般安全例外| IOException ex){
例如printStackTrace();
}
}

我找到了解决这个问题的办法。我只替换了文件夹“jre”中的文件。还需要替换文件夹“jdk”中的文件。

正确安装策略文件并遵循Oracle文档确保其安装正确后会发生什么情况?我下载了正确的8版本java的必要jar文件。然后我替换了
c:\ProgramFiles\java\jre\lib\security
中的文件,但没有任何更改((也许我应该尝试重新安装jre?