我正在使用J9规范(wm50-arm-midp20_6.1.2.2)用于在Windows Mobile上运行的Java应用程序,并且遇到需要创建文件的障碍。
我在com.ibm.oti.connection.file.FileOutputStream的J9构造函数中从此行获得安全性异常
if (!com.ibm.oti.vm.VM.callerIsBootstrap())
throw new SecurityException();
现在,大多数其他输出流类型都有一个支持connection.java类,调用通过该类传递,但没有一个支持文件流实现。
要解决这个问题,我预计需要编写我自己的DLL文件,并从java代码调用它,但我想知道是否有人遇到过这个问题,并且能够解决它而无需调用原生dll。
提前谢谢! JR答案 0 :(得分:0)
我找到了答案。
要解决此问题,访问文件系统所需的任何类都必须位于J9文件夹下的ext文件夹中。
在我的情况下,我使用microlog作为我的日志记录解决方案,并且正在寻找创建文件。我的应用程序jar不在ext文件夹中,所以我重新打包了所有内容,以便appender的java类在ext文件夹中,以便它们被j9 jvm认为是bootstrap类。
如果有任何人有任何疑问,请在评论中询问。
感谢所有看过这个的人。