我正在编写一个用Kotlin编写并用GraalVM编译的本地应用程序。其中一部分要求我打开和管理电子表格(xlsx)。
当我在vm模式下使用任何JVM (包括Graal )运行应用程序时,一切都很好。但是,当我编译应用程序本机时,当我试图打开与我在JVM中打开的文件相同的excel文件时,会出现一个错误。为了记录在案,我正在使用apache POI。
UnsupportedCharsetException: CP1252
有人能解释一下为什么它在JVM模式下工作,而不是本机的吗?
堆栈轨迹的片段:
java.lang.ExceptionInInitializerError: null
at org.apache.poi.poifs.filesystem.FileMagic.<init>(FileMagic.java:133) ~[pikr:5.2.3]
at org.apache.poi.poifs.filesystem.FileMagic.<clinit>(FileMagic.java:74) ~[pikr:5.2.3]以及POI中所涉及的代码:
FileMagic(String... magic) {
this.magic = new byte[magic.length][];
int i=0;
for (String s : magic) {
this.magic[i++] = s.getBytes(LocaleUtil.CHARSET_1252);
}
}发布于 2022-11-22 07:26:29
尝试将-H:+AddAllCharsets添加到命令行。
必须有某种方法只添加几个指定的字符集,但我在选项(native-image --expert-options-all)中找不到它
https://stackoverflow.com/questions/74525670
复制相似问题