- PR -

はずかしながらclasspathについて教えてください

1
投稿者投稿内容
バンブー
会議室デビュー日: 2003/09/22
投稿数: 12
投稿日時: 2003-11-03 09:02
いつもお世話になっております。
ちょっとはずかしい質問です。
JApplet#getCodeBase()で、ディレクトリを取得して、ファイルにアクセスしたい
のですが、
ForteForJava4とEclipse2.1(新規プラグインなし)で違う所作をします。
httpサーバーの仕様の違いによるかと思われますが、
特に、ForteForJavaのJApplet#getCodeBase()が返す

'http://hogehoge:8082/classpath/

の、classpathの部分がよくわかりません。
classpathという単語で検索しても、Javaに関してはinstall関連が多すぎて、
絞りきれずに、有効な情報に行き着けませんでした。
ForteとEclipse同時に使っておられる方よろしくお願いします。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-11-03 22:50
バンブーさん、こんにちは。

恐れながら、質問の意味と意図を理解するのが難しいので
外しているかもしれませんが、

JApplet#getCodeBase()が返すのは URLです。
ドキュメントがファイルならその存在は URLに対応はしてい
ますが、URLの文字列の全体またはその一部がディレクトリや
ファイル名を表していると思っているのならそれは間違いです。

サーバの資源は URLとしてアクセスするべきで、ディレクトリを
取得することはできません。(クライアントとサーバが同じホスト
で動作しているのなら、あるいはなんとかなるかも知れませんが、
全くナンセンスです。 もしそれが必要なら、アプレットとして
ではなく、アプリケーションがやる事でしょう。)
バンブー
会議室デビュー日: 2003/09/22
投稿数: 12
投稿日時: 2003-11-04 19:33
Kissinger様、早速のレスありがとうございます。

たぶん、ご指摘のとおり自分自身よく分かっていないのだと思います。

ただ、getCodeBase()が返してくるのは、Stringであり、そのStringを
もとにURLクラスを創生して、URLでファイルにアクセスするようにはしています。

ディレクトリを取得するという表現はその意味では間違っているのでしょう。

しかし、現実にはファイルを置く場所はディレクトリであり、このURLがどの
ディレクトリを指しているのか、見つけられないということで、困ってしまった次第
です。
Tomcatのwebappsの下あたりだろうとあたりをつけたのですが、まったくの
見当違いのようでした。
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-11-04 20:09
getCodeBase() が返すのは、applet タグで指定した codebase の値です。
getCodeBase() + "/Code.jar" や getCodeBase() + "/com/aaa/Main.class"で
アクセスできるように配置します。
バンブー
会議室デビュー日: 2003/09/22
投稿数: 12
投稿日時: 2003-11-05 04:31
Keisuke様 ご教示ありがとうございます。

私としても、Appletを呼び出すhtmlファイルのことをすっかり忘れていました。

これで、すっぱりと解決かと思ったのですが、
Forte for javaのはきだすhtmlファイルには、
APPLET codebase=..
となっていました。この部分を明示的に書き直せば、それでいいといえば
それまでなのですが、どうも納得がいきません。

よろしくお願いします。
1

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