Я разрабатываю приложение javafx, которое использует ведение журнала в файл и выполняет некоторую обработку файла, резервная копия которого находится в папке в структуре проекта. Проблема в том, что ни файл лога (ни файл logging.properties), ни временная папка для сохранения файлов не копируются в развернутый пакет. Структура проекта такова:
-src
-test
-resources
-config
*logging.properties
-css
-view
-images
*file1.json
*file2.json
-temp
*temp_file1
*temp_fileN
*log.txt
Папка ресурсов копируется нормально со всеми css, fxml и изображениями, а также с двумя файлами json, которые используются для хранения данных. Но log.txt в корне проекта нет ни при использовании приложения, ни папок config и temp. У меня исправлен файл build.xml
со следующими строками, которые, как я знаю, работают для ресурсов, но не решают мою проблему:
<filelist>
<file name="${java.home}\..\lib\ant-javafx.jar"/>
<file name="${java.home}\lib\jfxrt.jar"/>
<file name="${basedir}"/>
</filelist>
...
<fx:resources id="appRes">
<fx:fileset dir="dist" includes="MyApp.jar"/>
<fx:fileset dir="dist" includes="libs/*"/>
<fx:fileset dir="dist" includes="resources/**"/>
</fx:resources>
temp
иlog.txt
? - person ItachiUchiha   schedule 10.11.2015temp
иlog.txt
. В моем проекте есть, и когда я его запускаю, все в порядке. Но когда я развертываю его, например, в dmg и запускаю .app, файл журнала отсутствует в содержимом, и функции, которые делают этот процесс в файле и делают макет во временном режиме, не могут быть выполнены, и я думаю, потому что он выдает исключение IOException, потому что временной папки там нет. - person transgressoft   schedule 10.11.2015.app
ничем не отличается от файла.jar
, который представляет собой не что иное, как набор других файлов. Вы не можете в файлы внутри банки. Следовательно. всегда рекомендуется хранить файлы, не предназначенные только для чтения, за пределами jar-файлов. - person ItachiUchiha   schedule 10.11.2015/resources/config/
и должен быть включен, так как приложению требуется ключ API и секрет, хранящийся там (это не может быть в исходном коде, потому что он находится в общедоступном репозитории, и я должен сохранить ключ API). Вы знаете, как я могу это исправить? Я не хотел открывать новый вопрос SO только для очень похожего, сделанного мной. Заранее спасибо. - person transgressoft   schedule 25.01.2016