• ベストアンサー

import java.applet.Applet;について

ソースの先頭にimport java.applet.Applet;と書かれたソースをコンパイルすると、ローカルのjava.applet.Appletを読み込んで*.classを作るのだと思うのですが、java.applet.Appletが見つかりません。 普通はどのあたりにあるのでしょうか?

  • elngr
  • お礼率25% (22/86)
  • Java
  • 回答数3
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

java.applet.AppletクラスはJavaの実行環境(JRE)、またはJavaの開発環境(J2SE)のライブラリとして標準でインストールされています。 具体的には、下記のディレクトリの"rt.jar"に含まれています。(Windowsの場合) ■JRE  C:\Program Files\Java\<Javaのバージョン>\lib ■J2SE (C:\j2sdk1.4.2にインストールした場合)  C:\j2sdk1.4.2\jre\lib 通常は、コンパイル時には上記のJ2SE側の rt.jar を使ってコンパイルされるので java.applet.Appletクラスの存在を意識しなくても良いです。 また、実行時には上記のJRE側の rt.jar が使用されます。 ですから、コンパイル時、あるいは実行時にそれぞれのディレクトリに rt.jar がないとエラーが発生します。 ちなみに rt.jar の中身を確認したいのであれば、下記のコマンドをコマンドプロンプトから実行し、出力先のファイルをテキストエディタで開くと確認できます。  cd C:\j2sdk\jre\lib   ← ディレクトリ移動  jar tvf rt.jar > C:\Temp\result.txt ← rt.jarの中身をテキストファイルに出力  notepad C:\Temp\result.txt   ← メモ帳で出力結果を表示  出力結果のファイルには、java.applet.Appletであれば "java/applet/Applet" のように "." が "/" に置き換わって出力されています。

その他の回答 (2)

回答No.2

#1です。質問がいまいち理解できないところがあります。想像で書きます。アプレットを作成する場合はクラスAppletを継承するので、import java.applet.*;が必要になります。つまり、コンパイル時も実行時にもクラスAppletが必要です。クラスAppletはjava/applet/の下にあります。java.applet.*;の*は「java/applet/下のすべてのクラス」を意味します。C++でもライブラリlib(ソースでない)はコンパイル時に使用しますよね。importで指定するものはこのlibみたいなものです。 >java.applet.Appletを書くと、僕が作る*.classはAppletを使うことができるのですが、コンパイル時に java.applet.Appletの存在は不要なのでしょうか? --->「使うことができる」のでなく書かねばならない。コンパイル時にも必要です。 >java.applet.Appletが必要になるのは*.classが実行された直後ですか? --->質問の意味がちょっと不明。貴方の書かれたアプレットが実行されるときにApplet.classも実行されます。 >*.classが実行できるということはこのパソコンの中にAppletがあると思うんですけど見つからないのです。 --->あります。jarファイルになっているので見えません。

回答No.1

importはC言語でいうincludeみたいなものですが、importされたものがコンパイルされる訳でありません。importに指定したjava.applet.Appletは*.classの集まり(Jarファイル)で、ディレクトリ構造(java/applet/....)になっております。つまり、ディレクトリ構造を含めた*.classがJarになったものです。

elngr
質問者

補足

ありがとうございます。 まだ分からない部分があるので教えてください。 java.applet.Appletを書くと、僕が作る*.classはAppletを使うことができるのですが、コンパイル時に java.applet.Appletの存在は不要なのでしょうか? java.applet.Appletが必要になるのは*.classが実行された直後ですか? *.classが実行できるということはこのパソコンの中にAppletがあると思うんですけど見つからないのです。

関連するQ&A

  • Java applet

    Java appletを使用する課題なのですが、 途中まで書いて、それから止まってしまっています。 アドバイスなど頂ければ嬉しいです。 課題は、 (1)右から左へ動く文字列左から右へ動く文字列とを表示 (2)文字列が消えたらまた出てくるようにする (3)マウスのクリックボタンを押すと止まり、離すと動きだすようにする (2)まで考えたプログラム(コンパイル、実行済)を以下に載せます。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class SasakiYui extends Applet implements Runnable{ Thread th = null; Graphics g; int x; public void init(){ setBackground(Color.white); } public void start(){ if(th == null){ th = new Thread(this); th.start(); } } public void run(){ while(!Thread.interrupted()){ for(x=600;x>-300;x=x-5){ repaint(); try{ Thread.sleep(50); } catch(InterruptedException e){} } } } public void paint(Graphics g){ g.drawString("Happy Brithday!",x,10); g.drawString("Happy Birthday!",600-x,40); } } (3)ができるようにするには、 addMouseListener(new Mouseadapter(){ public void mousePressed(MouseEvent e){……} を使用するのだろうとは思うのですが、 ・これを組み込むのはpublic void init(){の後で良いか ・……の部分に何を書けばいいのか の2点がわかりません; よろしければ、アドバイスお願い致します!

    • ベストアンサー
    • Java
  • 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 となっています。 おかしいところはないと思うのですけど・・・。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Javaアプレットについての質問です

    Javaアプレット関係の質問です。 Eclipseで「Sample_01.java」ファイルを作成します。→ コマンドプロンプトでコンパイルします。→ 作成した「Sample_01.class」ファイルをデスクトップに移動します→ HTMLファイルを開きます。 …この手順だと問題なくアプレットを表示できるのですが、 Eclipseで「Sample_01.java」ファイルを作成します。→ 「保管」します。→ ナビゲータービューから「Sample_01.class」ファイルを取りだします→ デスクトップに移動します。→ HTMLファイルを開きます。 …この手順だとなぜか×マークが表示されエラーになります。 繰り返しになりますが、どちらのファイルも名前・中身は全く同じものとなっています。コンパイルの方法が違うだけです。 なぜEclipseで自動作成された方のclassファイルだけエラー?が出たのでしょうか?エラーが出ない対策とかはありませんかね? Javaアプレットに詳しい方いましたら教えてください。 //一応ソース乗せておきます import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; public class Sample_01 extends Applet{ private static final long serialVersionUID = 1L; public void init(){ } public void paint(Graphics g){ g.drawRect(200,200,25,30); } }

  • import について

    最近JAVAの勉強を始めたばかりの超初心者です。 専門用語(クラス、オブジェクト、メソッド等)に四苦八苦していますが、何とか頑張っています。 で、質問の件なのですが以下をコンパイル出来ません。 //printer.java public class printer { public void print() { System.out.println("hello from java"); } } //app.java import printer; public class app { public static void main (String[] args) { (new printer()).print(); } } printer.java → printer.class のコンパイルは出来ますが app.java をコンパイルしようとすると、以下のエラーが出ます ~$ javac app.java app.java:1: '.' がありません。 import printer; ^ app.java:1: ';' がありません。 import printer; ^ エラー 2 個 printer.javaとapp.javaとprinter.classはすべてカレントディレクトリに入っています。 ただ、app.javaのファイルでimportの行を削除するとキチンとコンパイル実行できてしまいます。 これがなぜか分からない(自分はimportあたりが怪しいと思う)のでタイトルを「importについて」としました。 どなたか原因分かる方いらっしゃいましたら、ご教示よろしくお願いします。

    • ベストアンサー
    • Java
  • javaの基本

    ここに書いてある http://www.tohwa-u.ac.jp/~kodama/java/1_world.html import java.applet.*; import java.awt.*; public class hello extends Applet { public void paint(Graphics g) { g.drawString("Hello World",20,20); } } hello.javaを作って ターミナルでjavac hello.javaでコンパイルして appletviewer hello.java とやるんですが sun.Applet.Mainというappletviewerが出て ウインドウが出ず困っています コードも間違ってないし 合ってると思います http://www.tohwa-u.ac.jp/~kodama/java/pictures/viewer01.jpg 見たいにでず sun.applet.mainというアプリみたいなのがドックに出て 3秒くらいで消えてしまいます 何故なんでしょう? どなたか詳しい方教えて下さい

    • ベストアンサー
    • Java
  • java applet

    import java. applet.*; import java. awt. Button; import java. awt. Label; import java. awt. TextField; import java. awt. event.*; public class 1120 extends Applet implements ActionListener { private TextField box1 = new TextField(5); private TextField box2 = new TextField(5); private TextField box3 = new TextField(5); private Label moji1 = new Label(" と "); private Label moji2 = new Label(" の和は "); private Label moji3 = new Label(" である。 "); private Button ok = new Button("OK"); public void init() { resize( 320 , 240); add( box1 ); add( moji1 ); add( box2 ); add( moji2 ); add( box3 ); add( moji3 ); add( ok ); ok.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { int i=0 ,j =0 , k; String t1 = box1.getText(); String t2 = box2.getText(); i = Integer.parseInt( t1 ); j = Integer.parseInt( t2 ); k = i + j; String s = Integer.toString( k ); box3. setText( s ); } } //上記のプログラムを書いたのですが、なぜかエラーが出てしまいます。勿論、自分でも見直しましたが、その理由がわかりませんでした。知識のある方、ご回答の方お願いします。

  • javaでアプレットの描画が出来ない

    ものすごく初心者な質問で申し訳ありません。 jdk-1.6.0をVine linux 3.2にインストールして使用しています。 javaのソースを書いてコンパイルするなどには問題は無いのですが (今のところ) 以下のようなアプレットを試してみたところアプレットの窓は起動しますが 描画がされません。 import java.applet.Applet; import java.awt.Graphics; /* <applet code="test" width=200 height=200> </applet> */ public class test extends Applet { public void paint(Graphics g) { g.drawLine(10,10,180,110); } } 以上のコードを %javac test.java %appletviewer test.java としました。窓は起動し、アプレットが開始された、と表示されるのですが 線が見当たりません。 (ちなみに教科書にあるサンプルなので間違いがあったとしたら写し間違いです) 線が表示されるはずなんですが、表示されないのです。 まども起動するので何かJAVAを使う環境として何か細かい設定を間違って いるのかと思い質問しました。 分かる方がいらっしゃったら教えてください。

  • appletの画像が表示されない

     画像を表示するappletを作ったんです。  コマンドのappletviewerでは確認出来るんですが、IEでは何故か表示されません。何故なんでしょう?  WINXP/IE6.0.2600です。  以下にコードを記述します。 import java.awt.*; import java.applet.*; public class test extends Applet {  Image img;  public void init() {   img = getImage(getDocumentBase(), "test.PNG");  }  public void paint(Graphics g) {   g.drawImage(img, 10, 10, this);  } }

    • ベストアンサー
    • Java
  • java import文のエラー

    javaのソースで、パッケージをimportして使用するための簡単なサンプルを作成しました。 import文でクラス名まで指定すれば問題ないのですが、*を利用するとコンパイルエラーとなってしまいます。 コンパイル時にクラスパスを指定するのかと思って試してみましたが、やはりエラーでした。 回避方法をご存知の方いらっしゃいましたら、教えていただけますでしょうか。 なお、java/javacは、1.5.0_14を使用しています。 ■ソースコード(1) <C:\Work\Test\PackTest.java> package Test; public class PackTest{   public static void methodA(){     System.out.println("パッケージ成功");   } } ■ソースコード(2) <C:\Work\UsePack.java> import Test.*;     //import Test.PackTest; なら成功 class UsePack{   public static void main(String args[]){     PackTest.methodA();   } } ■エラー例(1) >javac -d . PackTest.java (これは成功) >javac UsePack.java   UsePack.java:5: PackTest にアクセスできません。   クラスファイル .\PackTest.java は不正です。   ファイルにクラス PackTest が含まれていません。   削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。     PackTest.methodA(); ■エラー例(2) >javac -d . PackTest.java (これは成功) >javac -classpath C:\Work\Test UsePack.java   UsePack.java:1: パッケージ Test は存在しません。   import Test.*;   ^   UsePack.java:5: PackTest にアクセスできません。   クラスファイル C:\Work\Test\PackTest.class は不正です。   クラスファイル Test.PackTest に不正なクラスがあります。   削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。      PackTest.methodA();      ^

  • javaのバージョンアップに伴うエラー(らしい)を回避したいのですが

    「javaによる図形処理入門」と云う本で勉強しています。だいぶ前に買った本で、当時はちゃんとコンパイルできていたのですが、ひさしぶりに新しいノートPCにインストールした最新のjava(1.5.0_07)でコンパイルするとエラーが出ます。ソースは以下の内容です。(エラーが出るところだけ掲載しています。) ============================== import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Gr3dim extends Applet implements MouseListener,MouseMotionListener { int doX, doY; int angX=30,angY=30; Cube data = new Cube(); Color [] Col={ Color.gray, Color.cyan, Color.green, Color.red,Color.white,Color.orange, Color.magenta,Color.pink }; } ========================= 上記のCube data = new Cube();でエラーが出ます。 バージョンアップが何か関係あるのでしょうか? お分かりの方いらっしゃいましたら、ご指導ください。よろしくおねがいします。

    • ベストアンサー
    • Java

専門家に質問してみよう