достойного.
Вопрос: как мне получить путь к resources папке и чтобы это все дружилось с jar?
Задача: создать файл-картинку в resources папке.
Самого файла не существует, т.е getResource и подобные мы отбрасываем (это так?).
Т.е в идеале просто получить путь до resources, конкатенировать с именем файла и затем создать его.
Реализация:
val artExtension = "jpeg"
val pathToArt = "<тут путь до resources>/art.$artExtension"
val art = File(pathToArt)
val artContent = pixelateImage(originalImage)
ImageIO.write(artContent, artExtension, art)
Смог нагуглить лишь про this::class.java.getResource, но он возвращает null, так как файла нет (логично). Пробовал вызвать как this::class.java.getResource("/"), но корень resources кажись возвращать не умеет. Ещё нагуглил про System.getProperty("java.class.path"), но он возвращает <name>.jar, а это явно не то что мне надо.
Внутри существующего jar создать что ли? Думаю что никак
Внутри существующего jar создать можно, его надо открыть как зип, и писать туда как в зип файл. Вопрос зачем так делать. Скорее всего не надо.
И от этого его станет возможно увидеть через getResource без перезагрузки приложения? Думаю что нет. Это даже отвлекаясь от того вопроса, что jar может быть недоступен процессу на запись.
я вообще не очень понимаю зачем писать файл чтобы потом увидеть его через getResource()
Создавай в файловой системе, можно в .tmp директории
Я уже сделал класс для менеджмента resources, в случае если оно все крутится в jar, то в текущей директории (где .jar) создается resources папка, а иначе все происходит в src/main/resources. В итоге получается что-то вроде ResourceEntity("art.$artExtension").toFile()
А как можно иначе? Хранить все в абстрагированной от проекта директории, например в .tmp?
Обсуждают сегодня