ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのファイルパスの書き方

  • mixiチェック
  • このエントリーをはてなブックマークに追加
質問します。

eclipse+tomcatの環境です。
ファイルのパスの書き方で
悩んでいます。

?
tomcatプロジェクトフォルダの
ルートディレクトリのパスを
取得する方法はありますか?

■フォルダ構成
eclipseフォルダとworkspaceフォルダは
同じフォルダの下にある
 eclipse
 workspace
  −プロジェクトフォルダ
   −WEB-INF
    −classes
    −source
?
下記の文を実行したところ、
なぜか、eclipseのフォルダ直下に
ファイルができてしまいました。
new File("aaa.txt").createNewFile();

私の予想はこの文が書いてあるファイルと
同じフォルダにできるものと思っていましたが。
なぜでしょうか?
フォルダ構成は上と同じです。

コメント(3)

以下のコードで実験してみました。
System.out.println(System.getProperty("user.dir"));
System.out.println(new File("test.txt").getAbsolutePath());

結果は、
J:\WS\テストコード
J:\WS\テストコード\test.txt

Fileをインスタンス化する際にパスを渡さないと、システムプロパティが呼ばれるようですね。



クラスファイルの存在場所にかかわらずTomcatのパスを取得する方法は、Windowsでいう環境設定でパスを設定するか、無謀に全探索するしかないかと。

クラスファイルが存在する場所が一定なら、相対パスも一定のはずなので、それを利用するのもよいかと。

後は、設定ファイルを作って、そこに絶対パスを記述するのもひとつの手だと思います。


実際にそのような場面に直面したことないので、不確定な回答ですが、役立てば幸いです。
HttpServlet#getServletContext()
ServletContext#getRealPath(String path)
じゃだめですか?
ご回答ありがとうございます。

ServletContext#getRealPath(String path)
これをヒントに調べに調べて、
最終的に人に聞いて、
回答にたどりつきました。

ありがとうございました。
勉強になりました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。