0

Windows Mobile で実行される Java アプリケーションに J9 仕様 (wm50-arm-midp20_6.1.2.2) を使用していますが、ファイルを作成する必要があるため問題が発生しました。

com.ibm.oti.connection.file.FileOutputStream の J9 コンストラクターのこの行からセキュリティー例外が発生します。

  if (!com.ibm.oti.vm.VM.callerIsBootstrap())
        throw new SecurityException();

現在、他のほとんどの出力ストリーム タイプには、呼び出しが送信されるサポート用の connection.java クラスがありますが、ファイル ストリームの実装をサポートするものはありません。

これを回避するには、独自の DLL ファイルを作成して Java コードから呼び出す必要があると予想していますが、ネイティブ dll を呼び出すことなくこの問題を回避できた人がいるかどうか疑問に思っています。

前もって感謝します!JR

4

1 に答える 1

0

私は自分の答えを見つけました。

この問題を回避するには、ファイル システムにアクセスする必要があるすべてのクラスを、J9 フォルダーの下の ext フォルダーに配置する必要があります。

私の場合、ロギング ソリューションとしてmicrologを使用していて、ファイルを作成しようとしていました。私のアプリケーション jar は ext フォルダーになかったので、すべてを再パッケージ化して、アペンダーの Java クラスが ext フォルダーにあるようにし、j9 jvm によってブートストラップ クラスと見なされるようにしました。

質問がある場合は、コメントで質問してください。

これを見たすべての人に感謝します。

于 2013-02-21T14:27:18.167 に答える