После создания 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")