IBM J9规范不允许从非引导类访问文件

时间:2013-02-20 18:36:32

标签: java windows-mobile j9 ibm-jvm

我正在使用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

1 个答案:

答案 0 :(得分:0)

我找到了答案。

要解决此问题,访问文件系统所需的任何类都必须位于J9文件夹下的ext文件夹中。

在我的情况下,我使用microlog作为我的日志记录解决方案,并且正在寻找创建文件。我的应用程序jar不在ext文件夹中,所以我重新打包了所有内容,以便appender的java类在ext文件夹中,以便它们被j9 jvm认为是bootstrap类。

如果有任何人有任何疑问,请在评论中询问。

感谢所有看过这个的人。