JSPでカレントディレクトリを取得しようとして、下記のリンク先で解説しているソースを試しましたが、どうもCATALINA_HOMEが示すディレクトリが取得されてしまい、うまくいきません。


http://itbtech.itboost.co.jp/jserv/jserv_16.php

------------引用始-----------------
File fileParentDirectory = new File(".").getAbsoluteFile().getParentFile();
String path = fileParentDirectory.getAbsolutePath();
------------引用終-----------------

JSPではなく、サーブレットでも試しました。全く同様の結果です。
1.なぜ、うまくいかないのでしょうか。
2.また、カレントディレクトリを取得するにはどうすればいいでしょうか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/03/02 02:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:KUROX No.1

回答回数3542ベストアンサー獲得回数140

ポイント35pt

的をはずしてるかもしれませんが・・・。

質問文は、仕様どおりだと思います。

カレントディレクトリが、CATALINA_HOMEが示すディレクトリだと思います。

---------

やりたいことは、

WEBアプリケーションルートディレクトリの取得(Servlet)

String path = this.getServletContext().getRealPath("/");

http://www.itmedia.co.jp/enterprise/articles/0408/03/news020.htm...

このあたりなんじゃないでしょうか?

getServletContextを使う場合は、コンテナ依存だったような気がするので

うまくいかない場合もあったと記憶してます。

#的をはずしてたら申し訳ないので、コメント欄をオープンしていただけると

#ありがたいです。

id:kyoko55

ttp://hoge.com/contextA/folderX/index.jsp

のように、コンテキスト「contextA」の下に、名前が変わるかもしれないサブフォルダ「folderX」があり、その中にあるjspファイルから、「folderX」の取得を行いたいと思っています。

getRealPathとgetContextPathなどを使えばcontextAまでは取得できると思いますが。。

2008/02/24 16:29:39
id:okinaka No.2

回答回数38ベストアンサー獲得回数1

ポイント35pt

1.なぜ、うまくいかないのでしょうか。

2.また、カレントディレクトリを取得するにはどうすればいいでしょうか。

コマンドラインから CATALINA_HOME ディレクトリ上で、

Tomcat を起動したのではないでしょうか?

コマンドを実行したディレクトリが、カレントディレクトリとなります。


サーバーアプリケーションの場合、カレントディレクトリ自体が曖昧な値なので、

それに頼った仕様はよくありません。

参照したいディレクトリなどの情報は、固定で指定する方がいいとおもいます。

(たとえば context.xml や、web.xml などの外部のファイル)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません