当前位置: 首页 > 知识库问答 >
问题:

在selenium脚本中从excel获取数据时收到警告

红明德
2023-03-14

在使用以下方法从excel读取数据时,我收到了警告:我正在使用JDK 12.0.1

public static void main(String[] args) throws FileNotFoundException {
    File src = new File("FilePath");
    FileInputStream fis = new FileInputStream(src);
    try {
    wb = new XSSFWorkbook(fis);
    sheet = wb.getSheet("Contacts");
    }
    catch (IOException e) 
    {
        e.getMessage();
    }

}
    public static String getdata(int rowNum, int colNum) throws IOException {
    cell = sheet.getRow(rowNum).getCell(colNum);
    String cellData =cell.getStringCellValue();
    return cellData;

}

}

警告:警告:发生了非法的反射访问操作

警告:org.apache.poi.openxml4j.util.zipsecurefile$1(文件:/c:/users/.m2/repository/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar)对java.io.filterInputStream.in字段的非法反射访问

警告:请考虑将此报告给org.apache.poi.openxml4j.util.zipsecurefile$1的维护人员

警告:使用--illegal-access=warn启用进一步非法反射访问操作的警告

警告:所有非法访问操作将在以后的版本中被拒绝

共有1个答案

章兴发
2023-03-14

摘自https://POI.Apache.org/help/FAQ.html上的Apache POI常见问题解答(着重号已添加):

在使用Apache POI的最新版本时,将Java11上现有的二进制文件作为普通的JAR文件应该可以工作。您可能会看到一些关于非法反射访问的警告,但它应该工作良好,尽管这些。我们正在努力修改代码,这样我们就可以避免以后不鼓励的访问。

我们还做了一些工作来验证用Java11进行的编译是否正常,以及所有单元测试是否通过。因此Apache POI应该可以与当前的Java11版本一起使用。

注意:Apache POI还不完全支持Java模块系统,因为Apache POI仍然支持以前的Java版本,在保持这种支持的同时不能完全支持模块系统。我们正在努力增加对自动模块的支持。

请注意,当前版本中的jaxb还会导致一些关于反射访问的警告,在jaxb>=2.4.0可用之前,我们无法修复这些警告。有关详细信息,请参阅https://stackoverflow.com/a/50251510/411846。您可以设置一个系统属性“com.sun.xml.bind.v2.bytecode.classtailor.nooptimize”来避免此警告。

为了编译Apache POI,您应该至少使用4.1.0版本,当它可用或在此之前使用最近的trunk检查。

 类似资料: