com.ms.* パッケージで ClassLoader によって java.lang.ClassNotFoundException がスローされる


症状

Sun JavaTM Runtime Environment (JRETM) を使ってブラウザ内でアプレットを実行すると、com.ms.* パッケージで ClassLoader によって java.lang.ClassNotFoundException がスローされます。同じアプレットが、Microsoft Virtual Machine (VM) の下では何のエラーもなく実行されます。

原因

Microsoft VM では、J/Direct、Application Foundation Classes (AFC)、Windows Foundation Classes (WFC) など、独自のクラスライブラリが多数提供されています。これらのパッケージは Sun JRE では使用できないため、アプレットをブラウザ内で実行すると java.lang.ClassNotFoundException がスローされます。

解決方法

アプレットのソースコードを Microsoft 独自のクラスライブラリを使用したものから、Java プラットフォームにおける同様のクラスを使用したものに移行します。次の表に、Microsoft VM のクラスライブラリと Java プラットフォームのクラスライブラリの一覧を示します。

Microsoft VM Java プラットフォーム
J/Direct Java Native Interface
Application Foundation Classes Swing、Java 2D API
Windows Foundation Classes Swing、Java 2D API

詳細情報

「How to avoid potential pitfalls of Microsoft's non-standard SDK for Java」
「Trail:Creating a GUI with JFC/Swing」
「Download Archive:Java Native Interface」
「Lesson:Learning Swing with the NetBeans IDE」