注: この Java 配備ガイドでは、Java SE 6 update 10 リリースより前にリリースされた機能について説明します。最新情報については、Java Rich Internet Application の開発および配備を参照してください。

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

症状

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

原因

Microsoft VM では、アプレットやアプリケーションの実行時にセキュリティーポリシーへアクセスするために、独自の com.ms.security パッケージを用意しています。このパッケージは Sun JRE では使用できないため、このアプレットをブラウザ内で実行すると java.lang.ClassNotFoundException がスローされます。

解決方法

類似のクラスを使用することで、アプレットのソースを com.ms.security パッケージから java.security パッケージに移行します。

たとえば次のアプレットでは com.ms.security.PolicyEngine を使用して、URL への接続前にネットワーク I/O アクセス権を表明します。

public class AssertPermissionApplet extends java.applet.Applet
{
    public void init()
    {
        try
        {     
            // Assert permission on network I/O
            com.ms.security.PolicyEngine.assertPermission
            (com.ms.security.PermissionID.NETIO); 
            java.net.URL url = new java.net.URL("http://randomhost/randomfile");
            .....
        } catch (java.net.MalformedURLException mue) {
        }
        catch (java.io.IOException ioe) {
        }
      } // init
}

Java テクノロジでは、java.security.AccessController がパーミッションのアサーションに関して同様の機能を持ちます。次のソースコードは移行後の機能を示したものです。

public class AssertPermissionApplet extends java.applet.Applet
{
    public void init()
    {
        try
        {     
            // Assert permission on network I/O
            java.security.AccessController.checkPermission(new java.net.SocketPermission("randomhost:80", "connect,accept"));
            java.net.URL url = new java.net.URL("http://randomhost/randomfile");
            .....
        } catch (java.net.MalformedURLException mue) {
        }
        catch (java.io.IOException ioe) {
        }
      } // init
}

セキュリティーの詳細については、Java™ SE テクノロジの API ドキュメントを参照してください。

詳細情報

       「セキュリティー」を参照してください。


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.