- PR -

JavaのプラグインもXPでは動かない?

1
投稿者投稿内容
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-11-07 10:01
ご存知の方もいらっしゃると思いますが、IE6 では、Javaのネイティブサポートが打ちきられています。したがってそのままではJavaのプログラムが動きません。
(もちろん、Sunから提供されるJVMを別途インストールすれば動きますが。。。)

#@IT以外の記事の内容で申し訳ないですが、「参照元記事」を参照してください。

ただ、Javaアプレットはブラウザで標準装備されているJVMで動作するから、そのままでは動かないというのは容易に分かるのですが、Javaのプラグインはブラウザ毎に動作が変わってしまわないようブラウザで持っているJVMを使わないはずなので、関係ないのかなと思っています。

実際のところはどうなんでしょう。
ご存知の方がいらっしゃれば教えてください。

しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-07 17:09
? いまいち日本語が…

「アプレットがブラウザの JVM で動く」というのは必ずしもそうではないです。ブラウザが OS の JVM を使ってもいいのですから。昔は JVM なんて OS に載っていませんでしたら、しょうがなく JVM を載せていたようなもんで。IE なんてけっこう昔から OS の JVM を使ってたんじゃないんでしょうか。

プラグインは、強制的に別の JVM を使わせる手段であって、これがどの JVM を使うかも制御できるはず。ですから、OS の JVM が信用できるものであればそれを使ってもいいわけです。

今回は Sun が OS の JVM も提供していますから、それを使うと考えるのが素直でしょう。
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-11-08 10:21
ちょっと(だいぶ?)勘違いしていたようです。

というか、Javaプラグインの仕組みをちゃんと理解していませんでした。
Javaプラグインはクライアントが持っているJVMで動くのが嫌だから、JVMも一緒にダウンロードして動くようなイメージを持ってしまっていました。
(すごい勘違いをしていました。。。)

おかげで勘違いをしていることも認識できて、XPではそのままでは(OSのJVMをインストールしないと)Javaプラグインは動作しないということも理解できました。
(↑間違っていないですよね?)

と、疑問を解決できたのですが、新たな疑問が・・・(すみません。)
JavaプラグインをOSが持っているJVMで動かせるということは、OSが持っているJVMのバージョンによって動きが変わってしまうということがあるのでしょうか?
(↑また、変なことをいっている?)

お馬鹿な質問かもしれませんが、よろしくお願いします。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2001-11-08 13:11
変わりますよ。同じメソッドやクラスの動きが違うとかいうのはあまりないでしょうが、プラットフォームに依存してしまうところでは多少の違いがでます。

あと、気をつけないといけないのは、JVMのバージョンのちがいです。

たとえばJDK1.2〜で作ったアプレットやアプリケーションに、Vecotrクラスのget()などを使ってると、1.2より前のJREでは動きません。(確かErrorが送出されるんじゃなかったかな)これはVectorのget()が1.2から実装されたので1.1.x系では使えないからです。Swingとかもそうですね。

[ メッセージ編集済み 編集者: H2 編集日時 2001-11-08 13:12 ]
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-08 17:43
Sun の出す JVM 環境とういのは、おそらくですが、複数バージョンを同時にインストールしておいて、実行時にどれを使うかを変えられると思います。

少なくとも linux では、/usr/java/{jdk,jre}-<version> という複数のディレクトリに共存でき、ControlPanel.html/class というアプレットでプラグインがどの JVM を使うかを指定できるようにみえます(ちゃんと使ったことがないので自信ないですが…)。

また、Mozilla の about:plugins では、application/x-java-bean;version=1.1.2 などの記述もありますので、たぶんバージョンごとに JVM を変えてしまうこともできるのではないでしょうかね。

引用:
Javaプラグインはクライアントが持っているJVMで動くのが嫌だから、JVMも一緒にダウンロードして動くようなイメージ



は間違ってはいないですよ。最初に作られた動機がそれでしたから。ただ、OS にすでに M$ 製のちょっと変な JVM が入っちゃっててどないもしようがないから、苦肉の策で。

XP では M$ JVM は無くなったので、OS に JVM をつっこむのが一番の解ですよね。たぶん Win でも複数バージョン共存できるんじゃないでしょうかねぇ。

引用:
たとえばJDK1.2〜で作ったアプレットやアプリケーションに、Vecotrクラスのget()などを使ってると、1.2より前のJREでは動きません。



これはコンパイル時に -target <version> で回避できないですかね… API が違ったらさすがに無理かしら…
# ちうかそれだと -target の意味はなんじゃらほい。Optimize とか JIT まわり?
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2001-11-08 18:24
「Javaプラグインはクライアントが持っているJVMで動くのが嫌だから、JVMも一緒にダウンロードして動くようなイメージ」=「Javaプラグインは、Sun の出す JVM 環境をインストールしなくても動く」と思っていました。

「Sun の出す JVM 環境」は、「JVM自体を動作させる環境も含む」ということでよいでしょうか?

ということで、結論としては XP で Javaプラグインを動作させるにも、「Sun の出す JVM 環境」が必要である。

いろいろと、ありがとうございました。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-08 19:21
まぁ、そうですね。

現状の実際は逆で、「Sun の JVM を入れれば Java Plugin も動くようになる」でしょうか。たぶん。つまり、現在は「Java Plugin」という単体物はないということで。

少なくとも Linux 版は、だいぶ前に「Java Plugin」というのは無くなっており、Java Runtime Environment (=JVM) に統合されていましたよ。
1

スキルアップ/キャリアアップ(JOB@IT)