Mysaifu JVM is a free Java virtual machine for Windows Mobile.
1. クラスライブラリをGNU Classpath 0.92にアップデートしました
2. Windows Mobile 5.0を正式サポートしました
3. いくつかのJNI関数を実装しました
4. XML処理ライブラリ(libxml2, libxslt)を追加し、javax.xmlパッケージを利用可能にしました
5. バグフィックスを実施しました
java.awtパッケージ
- Font.layoutGlyphVector()を呼び出すとUnsupportedOperationExceptionが常にthrowされていた。
-タップ時にpostされるMouseEventのgetModifiers()の戻り値にInputEvent.BUTTON1_MASKが設定されていなかった。(InputEvent.BUTTON1_DOWN_MASKしかなかった)
-タップされた際にMouseEvent.MOUSE_PRESSEDイベントだけでなくMouseEvent.MOUSE_MOVEDイベントもpostするようにした。(アプリケーションによっては、MouseEvent.MOUSE_MOVEDの間隔がある程度"連続している"ことを想定しているものがあるため)
-MenuBar.add(Menu)の4回目の呼び出しで登録されたMenuを開くことができなかった点を修正した。
-GraphicsDevice.setFullScreenWindow(Window)メソッドを呼び出すと、常にUnsatisfiedLinkErrorが throwされていた点を修正した。(ネイティブメソッド名がおかしかった)
-GraphicsEnvironment.getMaximumWindowBounds()の返す値が、メニューバーの大きさを考慮していなかった。
java.utilパッケージ
-ZipFileがファイルオープンに失敗した場合にthrowされるZipExceptionメッセージに、ファイル名を含めるようにした。
javax.xmlパッケージ
-UnsatisfiedLinkErrorが発生していた点を修正した。 (ライブラリ libxml2, libxslt をWindows CEに移植した)
JNI
-以下の関数を実装した。
GetPrimitiveArrayCritical()
ReleasePrimitiveArrayCritical()
GetJavaVM()
GetEnv()
JNI_GetCreatedJavaVMs()
-DLLをロードした際に、そのDLL内のJNI_OnLoad()関数を呼び出すようにした。
-GetVersion()はJNI_VERSION_1_2を返すように変更した。(従来はJNI_VERSION_1_1を返していた)
JVM本体
-クラスライブラリをGNU Classpath 0.91から0.92にアップデートした。
-Microsoft Windows Mobile 5.0をサポートした。
-ファイル jre\bin\errono.dll を削除した。
-以下のファイルを追加した。
jre\bin\libwce.dll
jre\bin\libxml2.dll
jre\bin\libxslt.dll
jre\bin\xmlj.dll
-システムプロパティjava.class.versionを"46.0"から"49.0"に変更した。
-以下のようなコードを実行すると、ヒープエラーが発生してJVMがクラッシュしていた。
String[][] array = new String[4][1];
-invokevirtual命令実行時にWin32例外"Access violation"が発生することがあった点を修正した。