После создания setup.exe, использующего exe4j, запись файлов не работает

Я хочу создать файл журнала и записать некоторый текст в этот файл в java . Я выполнил эту задачу. При запуске jar-файла этот код работает хорошо. Но после создания setup.exe с использованием процесса записи в файл exe4j не работает. Любой знает, как это сделать. этот?

так я получаю путь к файлу JAR

File f = null;

 public String baseUrl() {
        try {
            if (f == null) {
                f = new File(Register.class.getProtectionDomain().getCodeSource().getLocation().toURI().getRawPath());
            }
            String path = f.getParent();
            return path;
        } catch (URISyntaxException ex) {
            System.out.println(ex);
        }
        return "";
    }

Это мой процесс создания файла журнала

    try {
    src.Log lg = new src.Log();
        lg.setAction(action);
        lg.setUserName(userName);
        lg.setDescription(description);
        lg.setTime(date);
        lg.setSyncPath(syncPath);
        lg.setMethod(method);

        String url = baseUrl();
        System.out.println(baseUrl());
        String directoryName = url + "/ResFile";

        File directory = new File(directoryName);
        if (!directory.exists()) {
            directory.mkdir();

        }

        File log = new File(directoryName + "/log.txt");

            if (log.exists() == false) {
                log.createNewFile();
            }
            try (PrintWriter out = new PrintWriter(new FileWriter(log, true))) {
                out.append(lg.toString());
            }

    } catch (Exception ex) {
        System.out.println(ex);
    }

1 ответ

Если вы используете режим "JAR in EXE", ваш файл журнала окажется во временном каталоге, потому что именно здесь JAR-файлы извлекаются во время выполнения.

Чтобы получить каталог, в котором расположен исполняемый файл, вы можете использовать

System.getProperty("install4j.exeDir")
Другие вопросы по тегам