- - PR -
はずかしながらclasspathについて教えてください
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-11-03 09:02
いつもお世話になっております。
ちょっとはずかしい質問です。 JApplet#getCodeBase()で、ディレクトリを取得して、ファイルにアクセスしたい のですが、 ForteForJava4とEclipse2.1(新規プラグインなし)で違う所作をします。 httpサーバーの仕様の違いによるかと思われますが、 特に、ForteForJavaのJApplet#getCodeBase()が返す 'http://hogehoge:8082/classpath/ の、classpathの部分がよくわかりません。 classpathという単語で検索しても、Javaに関してはinstall関連が多すぎて、 絞りきれずに、有効な情報に行き着けませんでした。 ForteとEclipse同時に使っておられる方よろしくお願いします。 |
|
投稿日時: 2003-11-03 22:50
バンブーさん、こんにちは。
恐れながら、質問の意味と意図を理解するのが難しいので 外しているかもしれませんが、 JApplet#getCodeBase()が返すのは URLです。 ドキュメントがファイルならその存在は URLに対応はしてい ますが、URLの文字列の全体またはその一部がディレクトリや ファイル名を表していると思っているのならそれは間違いです。 サーバの資源は URLとしてアクセスするべきで、ディレクトリを 取得することはできません。(クライアントとサーバが同じホスト で動作しているのなら、あるいはなんとかなるかも知れませんが、 全くナンセンスです。 もしそれが必要なら、アプレットとして ではなく、アプリケーションがやる事でしょう。) |
|
投稿日時: 2003-11-04 19:33
Kissinger様、早速のレスありがとうございます。
たぶん、ご指摘のとおり自分自身よく分かっていないのだと思います。 ただ、getCodeBase()が返してくるのは、Stringであり、そのStringを もとにURLクラスを創生して、URLでファイルにアクセスするようにはしています。 ディレクトリを取得するという表現はその意味では間違っているのでしょう。 しかし、現実にはファイルを置く場所はディレクトリであり、このURLがどの ディレクトリを指しているのか、見つけられないということで、困ってしまった次第 です。 Tomcatのwebappsの下あたりだろうとあたりをつけたのですが、まったくの 見当違いのようでした。 |
|
投稿日時: 2003-11-04 20:09
getCodeBase() が返すのは、applet タグで指定した codebase の値です。
getCodeBase() + "/Code.jar" や getCodeBase() + "/com/aaa/Main.class"で アクセスできるように配置します。 |
|
投稿日時: 2003-11-05 04:31
Keisuke様 ご教示ありがとうございます。
私としても、Appletを呼び出すhtmlファイルのことをすっかり忘れていました。 これで、すっぱりと解決かと思ったのですが、 Forte for javaのはきだすhtmlファイルには、 APPLET codebase=.. となっていました。この部分を明示的に書き直せば、それでいいといえば それまでなのですが、どうも納得がいきません。 よろしくお願いします。 |
1
