Я не хочу сам определять местоположение индекса в файловой системе. Как приложения обычно хранят любые файлы, созданные во время работы, есть ли какое-либо хранилище, предоставляемое механизмом для каждого приложения и т. Д.
По умолчанию классы в пакете java.io
разрешают относительные имена путей к текущему рабочему каталогу - то есть к местоположению в файловой системе, откуда была вызвана команда java
- которую можно получить с помощью системное свойство user.dir
:
String curDir = System.getProperty("user.dir");
Но делать это далеко не идеально (на самом деле запись в файлы не идеальна для переносимых приложений), и я не рекомендую этот подход, но предлагаю использовать абсолютные пути к файловой системе и, например, Системные свойства:
new File(System.getProperty("my.directory" + File.separator + "xxx");
Где свойство my.directory
будет установлено в скрипте запуска сервера приложений, например предполагая, что JBoss установлен под /opt
, используя -Dmy.directory=/var/opt/jboss/<somedir>
для соответствия FHS.
Просто имейте в виду, что:
- Запись в FS не идеальна для переносимости приложений. Предпочитаю запись в базу данных, если это возможно
- Использование
java.io
из EJBs теоретически запрещено .