如何使用相对路径在项目文件中使用FileWriter创建文件

时间:2014-01-17 19:52:34

标签: java netbeans glassfish

我正在使用NetBean和glassFish来开发jsp网站及其服务器。 在服务器端,我有一个使用FileWriter生成文本文件的java类:

FileWriter writer = new FileWriter("the-file-name.txt", true);

但我发现这个文件保存在glassfish目录中:

  

C:\ Program Files(x86)\ glassfish-4.0 \ glassfish \ domains \ domain1 \ config

此外,通过代码检查路径:

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current relative path is: " + s);

结果与上述路径相同。

如何获得正确的相对路径,无论是项目的路径还是此java文件的路径?

2 个答案:

答案 0 :(得分:1)

这将获取您正在运行的类/ jar的位置:

String path = System.getProperty("user.dir");

字符串路径包含绝对目录,并使用诸如
之类的东西 path = path.replace("jars", "");,您可以找到该应用程序的根目录。例如,如果jar位于目录C:\Program Files\Example\jars中,则会将路径设置为
C:\Program Files\Example\

答案 1 :(得分:0)

在Servlet中

String filePath = getServletContext().getRealPath("/").replace("\\", "/");

在JSP中

String filePath = session.getServletContext().getRealPath("/").replace("\\", "/");