Appletのデバッグ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
march3

Appletのデバッグ

#1

投稿記事 by march3 » 10年前

お世話になります。

Visual Studioに付属のリモードデバッグツールのように、
開発環境をインストールできない環境で動いているプログラムをデバッグしたい場合がありますよね。

WindowsのCやC++でできたプログラムであれば、上記のリモートでバッグ
http://www.atmarkit.co.jp/fdotnet/chush ... 03_02.html
を使う手がありますが、 Javaのアプレットでこれに該当する方法を利用したいです。

Javaの場合、eclipseの「実行」>「デバッグの構成」>「リモートJavaアプリケーション」から
jstatdのポートを指定して可能と聞きましたが、アプレットの場合は、うまくできませんでした。
うまく説明できずに申し訳ないのですが、以下の3つのマシンがあって、
(B)で動くアプレットのデバッグを(A)から行いたいのです。

(A)開発マシン(eclipseをインストールしてあるマシン)
(B)クライアントマシン(ブラウザで(C)からAppletをダウンロードして実行するマシン)
(C)サーバマシン(Applet本体を配置したWEBサーバマシン)

(B)にjstatdを設定したのですが、うまく行かず、
そもそもアプレットはリモートデバッグできないような気がしています。

実行環境で動くアプレットそのものをデバッグする効率よい方法があればご教授いただきたい次第です。

march3

Re: Appletのデバッグ

#2

投稿記事 by march3 » 10年前

march3 さんが書きました: (B)にjstatdを設定したのですが、うまく行かず、
すみません。jstatdの設定というのは間違いでした。忘れてください。

Javaのリモートデバッグするときは、Javaコマンドの引数(Xdebug)でアドレス、ポートを指定しています。
Appletの場合だと、この引数を指定できず、リモートデバッグできなくて挫折している次第です。

コード:

 java -Xdebug -Xrunjdwp:transport=アドレス・ポートなど指定

ISLe()

Re: Appletのデバッグ

#3

投稿記事 by ISLe() » 10年前

ブラウザで動いているアプレットはサンドボックスに阻まれてデバッグすることは不可能だと思います。
#可能だとしたらセキュリティ上問題ありなので。

未確認ですが、appletviewerを使って
appletviewer (ページURL) -J-Xrunjdwp:transport=(アドレス・ポートなど指定)
というふうにコマンド打ったらできないでしょうかね。

march3

Re: Appletのデバッグ

#4

投稿記事 by march3 » 10年前

ISLe() さんが書きました:未確認ですが、appletviewerを使って
appletviewer (ページURL) -J-Xrunjdwp:transport=(アドレス・ポートなど指定)
というふうにコマンド打ったらできないでしょうかね。
試してはいませんが、たとえそれができても目的は達成できないですね。
アプレットで実装したメソッドをJavascriptから呼び出したりしているので、
ビューアではJavascriptとの連携を表現できずwww

ブラウザのセキュリティ上、不可能な仕様になっているという可能性は十分あると思いますが
それをはっきりと名言しているサイトが見当たらず、判断しかねているところです。

まぁ、古典的な方法ですが、アプレット内で必要な箇所にprintlnで変数の値をログとして書き出すのが
最も効果的なデバッグ方法かもしれませんね。

ISLe()

Re: Appletのデバッグ

#5

投稿記事 by ISLe() » 10年前

公式ドキュメントに載っている方法なんてとっくに試されていますよね。
次世代Plug-inより前の古い情報だという断りが付いているし、ブラウザで動作しているアプレットのデバッグの方法であってリモートデバッグの方法というわけではないし。

march3

Re: Appletのデバッグ

#6

投稿記事 by march3 » 10年前

だいぶ時間が立ってからの報告になりますが、自己解決したので投稿しておきます。

結論から言うと、以下のサイトのやり方でできました。
http://sharingtechexperiencies.blogspot ... lipse.html
eclipse側でリモートデバッグの設定を「待ち受け」にして、先にデバッグを開始しておくのがポイントです。

ブラウザ側で動作するアプレットの設定はJavaコントロールパネルから行います。
「Java」タブ「表示」から「runtime parameters」に以下を設定

コード:

 -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=9100
ブラウザでアプレットを使用するURLを開くとEclipseが反応してデバッグできました。
めでたし。

ISLe()

Re: Appletのデバッグ

#7

投稿記事 by ISLe() » 10年前

せっかくなので公式ドキュメントへリンクを張っておきます。
詳しく見たらリモート接続の方法の記述もありました。

Java Plug-in 7.0 開発者ガイドデバッグのサポート

ちなみに、Java 7 のドキュメントに過去の記事として掲載されているものです。
Java 8 のドキュメントにはもはや掲載がありません。

閉鎖

“C言語何でも質問掲示板” へ戻る