teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2015/12/11 13:05

投稿

argius
argius

スコア9396

answer CHANGED
@@ -5,4 +5,17 @@
5
5
  IDEAのプロジェクトフォルダ上で動かしていれば、プロジェクトフォルダのパスが取得できると思います。
6
6
 
7
7
  あとは、具体的なプロジェクト構成の詳細が分からないので何とも言えません。
8
- もしよろしければ具体的な再現手順を教えてください。
8
+ もしよろしければ具体的な再現手順を教えてください。
9
+
10
+ ---
11
+
12
+ (追記)
13
+
14
+ ローカルデバッグ環境の場合について。
15
+
16
+ パスは、Webルートディレクトリー(webroot)を`/`として、そこからの相対位置を指定します。
17
+ `(webroot)/text.txt`なら、`getServletContext().getRealPath("/text.txt")`のように指定するとOKです。
18
+ これだと、IDEAでも、Eclipseでもうまく行きました。
19
+ 引数に`projectname/hogehoge`を指定した場合は、サーブレットの設定には実際に存在しない`(webroot)/projectname/hogehoge/`ディレクトリーorファイルとみなされるんだと思います。
20
+
21
+ どちらかと言うと、常に`getServletContext().getRealPath("/")`でWebルートディレクトリーを取得するようにしたほうが分かりやすいかも知れませんね。