java – Как вы можете сами сделать ссылку на приложение?

Вопрос:

Я создаю приложение (для mac), которое работает на java, и мне нужно, чтобы он мог редактировать собственное содержимое. Поскольку, в конце концов, приложение является просто прославленным каталогом, я предположил, что вы можете использовать его для изменения того, что внутри него. Но это приложение будет распространено, и я не знаю, где пользователь захочет разместить приложение. В настоящее время все ссылки на файлы, которые я делаю, используют File("path/from/user/to/application") но, конечно, предполагается, что вы можете найти свое приложение на домашнем диске пользователя. Есть ли способ сделать это, не зная, где хранится файл.app? Моя текущая настройка каталога в приложении:

app.app
Contents
|Info.plist
|PkgInfo
|---Resources
|   |icon.icns
|
|---MacOS
|   |JavaAppLauncher
|
|---Java
|---app.jar
|---package
|classFile.class
|---Folder
|FileToEdit.xml

Так есть способ найти и прочитать/изменить FileToEdit.xml в java-коде (хранящийся в classFile.class), не зная, где app.app?

Лучший ответ:

Вы можете использовать app.class.getClassLoader().getResourceAsStream("package/FileToEdit.xml") для доступа к вашему файлу в вашей программе, даже если он упакован в банку. Как вы можете видеть, вам не нужно использовать полный путь там, просто убедитесь, что ваш ресурс включен в путь сборки. Это, однако, чтение файлов. Нет никакой гарантии, что файл будет доступен для записи.

ИЛИ

Вы можете использовать временные файлы, чтобы делать то, что вам нужно. Скорее всего, они могут быть доступны для записи. Вы можете использовать исходный файл FileToEdit.xml в качестве шаблона для временного файла, а затем создать его с помощью

File file = File.createTempFile("FileToEdit.xml", null);

и использовать этот файл.

Но если вы ДЕЙСТВИТЕЛЬНО хотите сохранить данные, тогда вы должны использовать надлежащую базу данных.

Ответ №1

Я бы сказал, что вам нужно указать путь, начинающийся из папки src (смотря с перспективы папки проекта).

Поэтому, если у вас есть что-то вроде:

SRC/FileToEdit.xml

Тогда все, что вам нужно сделать, это использовать /FileToEdit.xml, поскольку он находится в корне вашего пути к классу.

Посмотрите: прочитайте xml файл внутри моего проекта (src)

Оцените статью
TechArks.Ru
Добавить комментарий