在使用以下方法从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启用进一步非法反射访问操作的警告
警告:所有非法访问操作将在以后的版本中被拒绝
摘自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检查。
这是我的代码 错误如下: 线程“main”中出现异常Java . lang . nosuchfielderror:RAW _ XML _ FILE _ HEADER at org . Apache . poi . poi fs . FILE system . FILE magic .(FILE magic . Java:42)at org . Apache . poi . open XML 4j
好心的,谁能帮助关于以下例外的根本原因。 test_automation.tc_invoice_printing.tc_input_fields_validation(tc_invoice_printing.java:37)在java.base/jdk.internal.reflect.nativeMethodAccessorImpl.Invoke0(本机方法)在java.base/jdk.int
问题内容: 我正在尝试使用Jsoup从站点获取数据。链接到该网站是点击这里! 这是我的代码以获取数据。` 请在这里告诉我我的错误是什么。 问题答案: 您要在此处使用Java 8,因为它默认情况下支持TLSv1.2以及其他必需的密码套件。 为什么不使用Java 7? 我在使用Java 7(1.7.0_45)的盒子上进行了测试,并得到了相同的错误。 我激活了调试消息并强制使用TLSv1.2。 然后我遇
请大家帮助了解以下异常的根本原因。 JAVAlang.NullPointerException在测试自动化中。TC_发票_打印。java上的TC_输入_字段_验证(TC_发票_打印.java:37)。base/jdk。内部的反映NativeMethodAccessorImpl。在java上调用0(本机方法)。base/jdk。内部的反映NativeMethodAccessorImpl。在java上
//回收器和视图 //调用提取数据方法extractData(); //提取数据