Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

アプレットの実行について

いつもお世話になっています。
また、わからないことがあるので教えてください!
私が作成したアプレットが他のパソコンでは灰色の四角のまま(アプレット領域)何も表示されないことがわかりました。

ちなみに以下のページを簡単に作成しました。
これをもうひとつのパソコンからは灰色の四角になります。


http://take1118.web.fc2.com/test1000.html

アプレットを作成した環境は
OSはXP
ブラウザはInternet Explorer6.0
javaのバージョンはjava2 sdk 1.4です。
Internet Explorerの
ツール⇒インターネットオプション⇒詳細設定
では、
<applet> JRE 1.50 06を使用(再起動が必要)

問題のほうのパソコンの環境は
OSはXP
ブラウザはInternet Explorer6.0
Internet Explorerの
ツール⇒インターネットオプション⇒詳細設定
では、
MicrosoftVM
javaJITコンパイラの使用(再起動が必要)
javaコンソールの使用(再起動が必要)

セキュリティーレベルは中になっています。
基本的に
Internet ExplorerにMicrosoftVMが入っていればアプレットは動くと思ったのですが動きません。
なぜでしょう?

一応
http://hp.vector.co.jp/authors/VA006860/howto_java.html
なサイトでいろいろ調べているのですがわからないので質問させてもらいました。
よろしくお願いします。

9

回答

79292

閲覧

9件の回答

評価

0

ちなみにソースは

import java.applet.*;
import java.awt.*;

public class test1000 extends Applet{


     public void paint(Graphics g){

         g.setColor(Color.yellow);
         g.drawRect(10,10,100,100);

         g.setColor(Color.yellow);
         g.fillRect(130,10,100,100);
     }

}

//htmlファイルは

<html>
  <head>
   <title>アプレット7_1</title>

</head>

   <body>
    <h1>四角を描く</h1>

    <applet code="test1000.class" width="250" height="120"></applet>

  </body>

</html>

です。

評価

0

Javaコンソールを開いてエラーを調べてみてください。

評価

0

javaコンソールというのは表示→Javaコンソール(J)ですよね

このような記述がされていました

Microsoft (R) VM for Java, 5.0 Release 5.0.0.3802
==============================================
?  ヘルプ
c  クリア
f  ファイナライザの実行
g  ガーベジ収集
m  メモリ使用状況
q  終了
t  スレッド一覧 list
==============================================
Error loading class: test1000
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException: test1000
    at com/ms/vm/loader/URLClassLoader.loadClass
    at com/ms/vm/loader/URLClassLoader.loadClass
    at com/ms/applet/AppletPanel.securedClassLoad
    at com/ms/applet/AppletPanel.processSentEvent
    at com/ms/applet/AppletPanel.processSentEvent
    at com/ms/applet/AppletPanel.run
    at java/lang/Thread.run

評価

0

>Microsoft (R) VM for Java, 5.0 Release 5.0.0.3802

マイクロソフトのVMはバージョンが古いのでうまく動かないのですね、たぶん

コンパイルするときに
javac -target 1.1 test1000.java
として、VMを指定してみてください。

評価

0

コンソールで見るまでもなく、"load: class test1000 not found"とかは確認できたりするのではないでしょうか。

また、問題ないというマシンでもMicrosoft VMを使用するようにすると同様になったりしていませんか?

java2 sdk 1.4とかJRE 1.50 06とかはSunが開発したもの、MicrosoftVMとはマイクロソフトが開発したもの。
必ずしも互換性があるとは言い切れないようにも思いますけど。
色々なサイトでどんなことを調べたのかは判りませんが、まずは"microsoft vm"とかでググッてみるとか。

Java2のAPIリファレンスの"Java Plug-in"のページを見てみるとか、
http://support.microsoft.com/kb/241111/
辺りを見てみるとかいうのも多少は何かになるのかも?

評価

0

もし何らかの方法でうまくいったとしても
MSのVMはセキュリティ問題が指摘されており
SunのVMを使うことをお奨めいたします。

SunのVMだと指定されているページではうまく表示されていますね。

評価

0

tamaさん!まあさん!ありがとうございます。

今tamaさんのいわれたように
javac -target 1.1 test1000.java
でコンパイルしたら無事に成功できました!
やはりバージョンの問題だった様ですね

確かに問題のパソコンでも
http://java.com/ja/
から最新のVMをダウンロードすれば正常表示されました。

しかし、そのうちアプレットゲームを作成して公開使用と思っていたのでマイクロソフトのVMでは動かなければいちいちsunのVMをダウンロードしてからお使いくださいと説明しなければいけないのかなと思いましたので原因がはっきりしたので安心しました。

ありがとうございました。

評価

0

>いちいちsunのVMをダウンロードしてからお使いくださいと説明しなければいけないのかなと

それは逆に、明記することで一般ユーザーに対して安定した環境を提供するということにもなり得るのかも?
当然その分の配慮も必要となったりはするでしょうけど。

普段Develop周りしか見てなかったというのもありますが、一般ユーザーが簡単にJREを手に入れられる配慮がないのは何故?とも思ったりしましたが、
http://java.sun.comへ行って右上の方にあるアイコンをクリックするだけでインストールできるようになっているのには気付きませんでした・・。
これならナビゲートにも手間は掛からないのでは?

商用サイトとかで、アプレットによるサービスが動かないと掲示板に貶し文句を書きまくっている人を見かけたりしますけど・・何かと探し出してはサービスが悪いと文句をつけているだけの人のようでもありますけど・・そういったものを利用してきちんと案内してあげることで公開とかも楽になるんではないかと思いますけどね。

評価

0

まったくその通りでした。

確かにtamaさんの言われているみたいに
MSのVMはセキュリティ問題とかあり、一般ユーザのための配慮も必要でしたね

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。