我正在使用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文件的路径?
答案 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("\\", "/");