Javaアプレットの起動に失敗するエラーについて

このQ&Aのポイント
  • Javaの勉強を始めたばかりなのですが、アプレットをhtmlファイルから起動できません。
  • WindowsVistaと7で同じ現象が起きており、Eclipse3.5とIE8を使用しています。
  • 単純なJavaアプレットを作成し、Eclipse上からは正しく表示されますが、ブラウザで起動すると起動に失敗し、エラーメッセージが表示されます。
回答を見る
  • ベストアンサー

・Javaの動作テストについて

・Javaの動作テストについて つい先日Javaの勉強を始めたばかりなのですが、早速行き詰ったので質問させていただきます。 アプレットをhtmlファイルから起動できません。 【開発環境】 ・WindowsVistaと7(どちらでも同じ現象が起きている) ・Eclipse3.5(プレアデスの日本語パッチの当てられたオールインワンパックを使用) ・IE8 (他に環境としてあげる必要のあるものがあれば教えてください) 【状況】 ・単純なJavaアプレット(よくあるHelloWorld)を作成 ・Eclipse上からアプレットビュアーを起動すると、正しく表示されている ・生成されたHelloWorld.classと同じフォルダ内にHelloWorldを呼び出すhtmlファイルを置いてブラウザで起動すると、指定したサイズ分の四角い枠が表示され、赤丸の中に「!」マークのあるアイコンだけが表示され、その枠の中をクリックすると「アプリケーションの起動に失敗しました」というエラーメッセージが表示される 【htmlコード(抜粋)】 <applet code="HelloWorld.class" width=250 height=300> </applet> ※こういう質問をする場合に何を伝えればいいのかもよくわからないので、他に必要な事項があったら教えてください。

  • Java
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

クラスパスが通ってないから、探し当てられないのでしょう。 appletタグに codebase="." の属性を追加してみるとか。 class ファイルは、html ファイルと同じディレクトリに置いてありますよね?

Foomin
質問者

お礼

よく調べてみたら、原因はパッケージを使ったことによりディレクトリの構成が変わってしまっていたせいでした。やっぱり実質的な問題点は、クラスのパスを間違っていたことにありました。ありがとうございました。

Foomin
質問者

補足

ありがとうございます。 でも、codebaseを追加しても状況は変わりませんでした。 classファイルの場所はhtmlと同じフォルダ内です。 javaのコード内でパッケージを指定していて、classファイルはbinフォルダ内にあるパッケージ名のついたフォルダ内に生成されました。 パッケージ名のフォルダと同じ階層・パッケージ名のフォルダ内に同じ内容のhtmlファイルを置いて動作を試してみましたが、どちらにしろ表示はされませんでした。

その他の回答 (2)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

気になるのはIE8ね。 手元にIE8がないので確認できないけど 一番疑えるのはIE8でのAPPLETタグの動きかしら。 OBJECTタグで書いてみてはどお?

Foomin
質問者

お礼

Javaで質問する時に何を伝える必要があるのかも知らなかったため、勉強になりました。 ご丁寧な解説、ありがとうございました。 実際の原因としては、パッケージを使ったためクラスファイルまでの階層を間違えていたためであり、IE8でも問題なく動作しました。 OBJECTタグというものがあること自体初耳ですが、今後参考にさせていただきたいと思います。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

Javaコンソールを開いてみてはどお? まずはそれからよ。

Foomin
質問者

補足

コンソールを開くと以下のような記述がありますが、やっぱり原因はわかりません。 この中に原因になるものがあるのでしょうか。 Java Plug-in 1.6.0_17 使用中の JRE のバージョン 1.6.0_17-b04 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\**** ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ---------------------------------------------------- load: クラス HelloWorld.class が見つかりません。 java.lang.ClassNotFoundException: HelloWorld.class at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.io.FileNotFoundException: C:\eclipse\workspace\HelloWorld\bin\HelloWorld\class.class (指定されたパスが見つかりません。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source) at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 7 more 例外: java.lang.ClassNotFoundException: HelloWorld.class

関連するQ&A

  • 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); } }

  • Javaアプレットの動作テスト(Eclipse)

    Javaアプレットの動作テストは… (1)HTMLファイルの作成 (2)java→classにコンパイル (3)作成したHTMLファイルを開く (1)~(3)のような手順で行われると思うのですが、 もっと簡単に動作テストする方法はありませんか? それと、Eclipseでアプレットの動作テストってできますか? (「メニュー」→「実行」ではできませんよね…?)

  • アプレットの動作テストができない

    Eclipseのメニュー→「実行」→「Javaアプレット」で、"HELLO"の文字を表示させるアプレットの動作テストしたんですが、エラーが出てしまいました。 エラー内容は以下の通りです。 -------------------------------------- この行に複数マーカーがあります。 - シリアライズ可能クラス Sample_01 は long 型の static final serialVersionUID フィールドを 宣言していません。 - ブレークポイント:Sample_01 ---------------------------------------- HTML上での動作テストは問題なくできるのですが、Eclipseでの動作テストは失敗します。なぜでしょうか? ソースはJava講座のHPの物なので、間違いないと思うのですが…。 //ソース import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; public class Sample_01 extends Applet{ //この部分に使用する変数を宣言// public void init(){ //ここで最初にやっておきたい処理を記述する// } public void paint(Graphics g){ g.drawString("HELLO!",200,200);//ここでアプレット画面に表示させる処理を記述する// } }

    • ベストアンサー
    • Java
  • 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を使う環境として何か細かい設定を間違って いるのかと思い質問しました。 分かる方がいらっしゃったら教えてください。

  • Javaを利用したいです

    前回は質問ではわかりにくいとのことなので詳しく書きます。 まず現在PCはXPです http://java.sun.com/products/ にアクセスし、Java2 Platform, Standard Edition(以下J2SE)を捜し、そこからXPにそったJava 2 SDKの最新バージョンをダウンロードしました。 その後それをインストールし 環境設定でPATHを書き換えを行いました その後コマンドプロンプトで javac HelloWorld.java を実行したところコンパイルには成功したようで HelloWorld.classができあがりました しかしその次に java HelloWorld と実行したところ Exception in thread "main" java.lang.NoClassDefFoundError というメッセージが出てきました<html> <body> <APPLET CODE = "HelloWorld.class" WIDTH = 200 HEIGHT = 100> </APPLET> </body> </html> といったhtmファイルを作成し実行したところ HelloWorld.classは見つかりませんといって類の メッセージが英語ででてきました いったいどうしたらいいのでしょう?

    • ベストアンサー
    • Java
  • javaの実行環境

    javaの勉強をしようと思い、以下のhelloworldコードを書いてみました。 public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World\n"); } } それを、以下のようにlinux環境(ubuntu 10.10)でコンパイル実行しようとしたのですが、 javac HelloWorld.java java HelloWorld.class Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。そこで色々調べて jar cvmf manifest.mf test HelloWorld.class とjarファイルを作成して実行したところ、適切に"Hello World"が表示されました。 (manifest.mfの中身は"Main-Class: HelloWorld"1行だけです。) その後、このjarファイルをwindows環境に持っていって実行したのですが、 Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。 linux環境で、"echo $CLASSPATH"を実行しても何も表示されず、CLASSPATHはどこにも通っていないようです。 また、windows環境のDOS画面にてSETを実行し、環境変数を表示させてもCLASSPATHはありませんでした。(javaはインストール済みです。) で、質問です。 1)なぜjarにすると実行でき、classファイルのままでは実行出来なかったのでしょうか? 2)windows環境で、CLASSPATHを設定したほうが良いのでしょうか?設定する場合は、prgramfiles\java\binで良いのでしょうか? 以上、長くなり申し訳ないのですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • load:class HelloWorld not found

    アプレットの表示でIEのステータスバーが load:class HelloWorld not found になります。 英語のパスだし、長いフォルダ名も無いし、原因らしいものは心当たりありません。 他の人が作ったクラスなら普通に表示できました。 僕が作ったクラスがおかしいのかもしれません。 import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g){ g.drawString("Hello World", 20, 20); } } をコンパイルしたMD5やダンプを教えてもらえませんか。

    • ベストアンサー
    • Java
  • Eclipseを用いたJARファイル作成について

    Eclipseを用いてjavaのプログラムをしているのですが アプレットのプログラム"のみ"がJARファイルにエクスポートできずに困っております。 [プロジェクト]を右クリック→[エクスポート]→[JARファイル]に設定するところまでは良いのですが 「JARマニフェスト仕様」というページの、「アプリケーションのエントリー・ポイントのクラスを指定」という項目で、メインクラスを参照しても アプレットのプログラムのクラス"のみ"が表示されていないのでエクスポートできません。コンソールのプログラムのクラスは表示されているので おそらく、アプレットにはmainメソッドを用いていないので表示されないのだと思うのですが・・・。 mainメソッドがないプログラムの場合はどうすれば良いのでしょうか・・・? 自分なりに、↓など調べてみたのですがどこがいけないのかわかりません。 http://mailsrv.nara-edu.ac.jp/~asait/java/applet/applet.htm http://sunjava.seesaa.net/article/57546363.html どこをどうすればこの場合、EclipseでJARファイルが作成できるのか、詳しく教えていただければ助かります。 一応、アプレットは↓の簡単なプログラムを試してみました。実行は出来ます。 import java.applet.Applet; import java.awt.Graphics; public class Sample extends Applet { public void paint(Graphics g) { g.drawString("こんにちは",10,10); } }

  • JavaアプレットでJavaMailAPIを使用するときのエラーについて

    今Javaアプレットでメールを送信するプログラムを作成しているのですが、アプレットだけをappletviewerで実行するときはうまく起動するのに、htmlに埋め込むとアプレットの読み込みに失敗してしまいます。 htmlでは下のようにJavaApplet.classというクラスファイルを指定しているのですが、駄目でした。このhtmlファイルとclassファイルは同じディレクトリに配置しています。これは何が原因なのでしょうか? 使っているjdkのバージョンはjdk1.4.2.12です。 環境変数の設定はJAVA_HOMEにC:\jdk1.4.2_12、PATHにはC:\jdk1.4.2_12\binとしてあります。 よろしくお願いします。 <html> <head></head> <body> <p align = "center">試作</p> <p align = "left">E-mailの送信</p> <Applet code = "JavaApplet.class" width = 400 height = 300></Applet> </body> </html>

    • ベストアンサー
    • Java
  • JAVAについての質問

     現在、JAVA(アプレット)を勉強しているのですがどうもうまくいかないので質問させていただきます。   まず、javaプログラム(Hello.java)をコマンドプロンプトを使ってclassファイルを作ります。そして、そのファイルを <APPLET CODE="Hello.class" WIDTH=150 HEIGHT=100> </APPLET> というのを書いてhtml形式のファイルにくっつけます。このhtmlファイルをダブルクリックすると"Hello"と出ます。  しかし、この後Hello.javaファイルを"Goodbye"と出るように変えて上書き保存します。そして、上で書いたのと同じようにjavacを行なって、html形式のファイルをダブルクリックしても"Goodbye"と出ずに、"Hello"と出て更新されていません。(上書き保存しているので"Hello"と出るプログラムは無いはずなのに)  どうしたら更新されるのでしょうか?どうぞよろしくお願いします。

専門家に質問してみよう