Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用相对路径在项目文件中使用FileWriter创建文件_Java_Netbeans_Glassfish - Fatal编程技术网

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

Java 如何使用相对路径在项目文件中使用FileWriter创建文件,java,netbeans,glassfish,Java,Netbeans,Glassfish,我正在使用NetBean和glassFish开发jsp网站及其服务器。 在服务器端,我有一个java类,它使用FileWriter生成一个文本文件: FileWriter writer = new FileWriter("the-file-name.txt", true); 但我发现该文件保存在glassfish目录中: C:\ProgramFiles(x86)\glassfish-4.0\glassfish\domains\domain1\config 此外,通过代码检查路径: Path c

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

FileWriter writer = new FileWriter("the-file-name.txt", true);
但我发现该文件保存在glassfish目录中:

C:\ProgramFiles(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文件的路径?

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

String path = System.getProperty("user.dir");
字符串路径保存绝对目录,并使用类似
path=path.replace(“jars”和“”),您可以找到应用程序的根目录。例如,如果jar位于目录
C:\Program Files\example\jars
中,则会将路径设置为
Servlet中的C:\Program Files\Example\

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

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

更改为“\some\u folder\the file name.txt”?该类由一个侦听器从web.xml:data.StartUpListener调用。我想这可能是我得到错误相对路径的原因。我也尝试了此方法,但我也得到了相同的路径:C:\Program Files(x86)\glassfish-4.0\glassfish\domains\domain1\config正如我在前面的评论中所说的那样,我认为这是由于侦听器从web.xml调用了该方法造成的,这一定是,因为这对我来说很好。调用一个via方法,或者任何你想调用的方法,那么你基本上封装了获取路径的主方法