Java 文件编写器。如何在与 .exe 文件相同的目录中创建文件夹?

Java FileWriter. How do you create a folder in the same directory as your .exe file?

public void saveFile() {
        
         try {
             try (BufferedWriter save = new BufferedWriter (new FileWriter("Lessons\" + tempTextField.getText() + ".txt"))) { // creates the file
                 save.write(lessonPane.getText()); // saves the contents of the text pane into file
                 JOptionPane.showMessageDialog(null, "File Saved!");
             }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e);
        }

这就是我目前拥有的,现在它工作得很好。但是为了让它工作,我必须在项目目录中创建一个文件夹,否则它会抛出一个错误,说缺少位置。

问题是我想为这个项目制作一个 .exe 文件和安装程序(因为它是学校的项目要求)。在我构建并使用 L4J 制作 .exe 并使用 ISC 安装程序之后,它会抛出一个错误,指出目标位置(又名文件夹“Lessons”)无效/丢失。

在尝试解决它之后,我认为它不再工作的原因是因为我的 .jar .exe。和 JRE 位于文件夹“dist”中(在我清理并构建项目以获取 .jar 文件后生成),而文件夹“Lessons”位于根文件夹中。

如何使文件夹自动生成在与 .jar 或 .exe 相同的位置。老实说,我什至不知道这是否可能。还有其他方法可以解决这个问题吗?

非常感谢!

public void saveFile() {
        
        File fdir = new File("Lessons");
        if (!fdir.exists()) {
            if(fdir.mkdirs()){
                System.out.println("directory created");
            } else {
                System.out.println("folder creation failed");
            }
        } else {
            System.out.println("directory already exists");
        }
        
         try {
             try (BufferedWriter save = new BufferedWriter (new FileWriter("Lessons\" + tempTextField.getText() + ".txt"))) { // creates the file
                 save.write(lessonPane.getText()); // saves the contents
                 JOptionPane.showMessageDialog(null, "File Saved!");
             } 
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, e);
        }

这太傻了,我只是删除了 File 中的斜杠,它起作用了。 我不知道它是如何或为什么起作用的。但它奏效了。