• ベストアンサー

import java.applet.Applet;について

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

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

  • ベストアンサー
回答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