- - PR -
classファイルやjspファイルのパスを知るには?
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-22 17:56
基本的な質問で恐縮なのですが、
実行中のclassファイルやjspファイルのファイルパスを 知るためのプロパティはあるのでしょうか? classファイルと同じパスにあるテキストファイルを 絶対パスで指定し、読み書きしたいだけなのですが… | ||||||||
|
投稿日時: 2003-09-22 18:19
classファイルのURLなら次のように取得できます。
ただし、mtkさんのやりたいことの場合だと、
として、直接テキストファイルのURLを取得する方が自然でしょう。 xxx.txtはclassファイルのあるディレクトリからの相対パスです。 getResourceAsStreamを使えば、URLでなく、ストリームを取得することができます。 #二つ目のコード例のメソッド名を変更 getClassURL → getTextURL [ メッセージ編集済み 編集者: Wata 編集日時 2003-09-22 18:47 ] | ||||||||
|
投稿日時: 2003-09-22 18:34
Wataさん、素早いレスありがとうございます。
質問内容が説明不足だったようで申し訳ありません。 私が知りたいのはディスク上のファイルパスなんです。 例えば、実行するclassファイルのパスが C:\xxx\Test.class であれば、 「C:\xxx\」の部分をStringで返すプロパティ等を知りたいのです。 勉強不足で恐縮ですが、引き続きご教示をお願いします。 | ||||||||
|
投稿日時: 2003-09-22 19:09
Wataです。
URLが取得できれば、正攻法ではないかもしれませんが、 ファイルのパスも間接的に得ることができると思います。 URL#getPath()でURLのパスを文字列で取得することができるので、 ローカルディスク上のファイルなら、先頭の"file:/"を取り除いてやればOKだと思います。 ただし、getPath()で得られる文字列はURLEncodingされているので デコードする必要があります。 fileプロトコルのURLからFileオブジェクトを返すメソッドは、 あってもよさそうなものですが、どうもないようです。 なお、classファイルがjarに含まれていて、jarファイル自体のファイルパス を知りたい場合だと、もう少し複雑な処理が必要になると思います。 ところで、テキストファイルを読み込みたいだけなら、URLやストリームの 直接取得で十分だと思うのですが...。 | ||||||||
|
投稿日時: 2003-09-22 19:21
追加です。
Webアプリケーションなら、ServletContextのgetRealPath()で目的のパスを 得られるかもしれません。試してみてください。 | ||||||||
|
投稿日時: 2003-09-22 20:38
Wataさん、かさねがさねありがとうございます。
ご教示いただいたとおりに試してみます。 本当にありがとうございます。 | ||||||||
1
