- ベストアンサー
Appletが動きません・・・
こんにちは。今日Javaを学び始めた超初心者です。 -HelloApplet.java-------------------------- import java.awt.Graphics; import java.applet.Applet; class HelloApplet extends Applet{ public void paint(Graphics g){ g.drawString("Hello World", 50,25); } } ------------------------------------------- で、これをコンパイルしてHTMLに組み込み、Appletviewerで見てみるのですが、 以下のようなメッセージが出ます。 ---------------------------------------------- C:\java>appletviewer hello.html load: HelloApplet.class は public ではありません。あるいは public なコンストラク タを持っていません。 java.lang.IllegalAccessException: Class sun.applet.AppletPanel can not access a member of class HelloApplet with modifiers "" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57) at java.lang.Class.newInstance0(Class.java:302) at java.lang.Class.newInstance0(Class.java:302) at java.lang.Class.newInstance(Class.java:261) at sun.applet.AppletPanel.createApplet(AppletPanel.java:617) at sun.applet.AppletPanel.runLoader(AppletPanel.java:546) at sun.applet.AppletPanel.run(AppletPanel.java:298) at java.lang.Thread.run(Thread.java:534) ---------------------------------------------- HTMLを開くと赤い「×」が出ています。 環境ですが、 CLASSPATH:C:\j2sdk1.4.2_04\lib\tools.jar;.;c:\java PATH:C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.2_04\bin 作業フォルダ: c:\java となっています。 おかしいところはないと思うのですけど・・・。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
エラーメッセージが出たらちゃんとそれに従うことですよ。 > HelloApplet.class は public ではありません。あるいは public なコンストラクタを持っていません。 HelloApplet クラスがパブリックになっていないのがいけないと言っています。実際にソースを見てみると、 > class HelloApplet extends Applet{ となっていて、確かにパブリックではありません。ならば、パブリックにすればいいだけのことです。具体的には、以下のように訂正すればよいでしょう。 public class HelloApplet extends Applet { ところで、 > 今日Javaを学び始めた超初心者です。 「超」が付くほどの初心者ではないと思うのですが。質問文も必要な情報がちゃんと書かれていて読みやすいです。的確な質問が出来るということは、それだけスキルがあるということですからね。
その他の回答 (1)
-HelloApplet.java-------------------------- import java.awt.Graphics; import java.applet.Applet; class HelloApplet extends Applet{ public void paint(Graphics g){ g.drawString("Hello World", 50,25); } } ------------------------------------------- の class HelloApplet extends Applet{ を public class HelloApplet extends Applet{ と書いてコンパイルしなおして、後は同じように 実行してみてください。動かなかったらごめんなさい。
お礼
ありがとうございます<(_ _)> 具体的な内容は#2さんですね。
お礼
動きました!ありがとうございます! 昨日の勉強でようやくpublicとprivateのことを学びました^^; HTMLから呼び出す時にpublicになっていないと呼び出せないということでしょうか?? > 質問文も必要な情報がちゃんと書かれていて読みやすいです。 ありがとうございます。 ちょっと読んだだけですが、初心者がぶち当たるのはだいたい環境変数かJava特有の概念だという感じだと思ったので・・・。