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");
}
....
}詳細情報
なし。