java.lang.InstantiationException: コードとオブジェクトの両方ではなく、どちらか片方だけを指定する
症状Sun JavaTM Runtime Environment (JRETM) を使ってブラウザ内でアプレットを実行すると、
java.lang.InstantiationException
がスローされます。同じアプレットが、Microsoft Virtual Machine (VM) では何のエラーもなく実行されます。原因
以下の 2 つの原因があります。
code
属性とobject
属性の両方が<APPLET>
タグ内に指定されています。
<APPLET code=MyApplet object=MyApplet.ser width=100 height=100>
</APPLET>
Sun JRE は、code
属性、object
属性のいずれかにアクセスできますが、その両方にアクセスすることはできません。
- 次のコードに示すように、
code
属性が<APPLET>
タグで指定され、object
属性が<PARAM>
タグで指定されています。<APPLET code=MyApplet width=100 height=100>
<PARAM name="object" value="someValue">
</APPLET>
public class MyApplet extends java.applet.Applet
{
public void init()
{
String value = getParameter("object");
}
....
}
Sun JRE はパラメータ名としてobject
をサポートしません。解決方法
原因が最初のものである場合、次のコードに示すように、
<APPLET>
タグのcode
属性を削除します。
<APPLET object=MyApplet.ser width=100 height=100>
</APPLET>
原因が 2 番目のものである場合、次のコードに示すように、パラメータ名を別の名前に変更します。
<APPLET code=MyApplet width=100 height=100>
<PARAM name="property1" value="someValue">
</APPLET>
public class MyApplet extends java.applet.Applet
{
public void init()
{
String value = getParameter("property1");
}
....
}
詳細情報
なし。