Скажем, у меня есть экспортированный файл Jar на моем рабочем столе, а затем папка, к которой я хочу получить доступ, чтобы файл jar мог загружать файлы из него. Как я могу получить доступ к этой папке без жесткого кодирования пути?Java получить папку в том же каталоге, что и Jar
ответ
Смотрите здесь: https://stackoverflow.com/a/6849255/514463
Выберите один из классов, которые вы хотите в каталог, например: Тест:
String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");
Если я четко понимаю, вы можете использовать относительный путь при попытке доступа к папке. Например, если вы запускаете банку как отдельное приложение, относительный путь «.» будет папкой, содержащей вашу банку. Итак, когда вы поместите файл names.txt рядом с банкой, вы можете получить доступ к нему:
new File("./names.txt");
Надежда Я понял вас правильный путь, и это поможет.
File f = new File("Folder")
Этот объект File указывает на папку «Folder» в рабочем каталоге Jar.
Следующий код должен предоставить каталог, содержащий файл JAR:
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
File directory = new File(url.toURI()).getParentFile();
Хммм ...
Я слышал этот вопрос так часто, и это всегда сводится к следующему: как загрузить ресурсы во время выполнения?
Основная причина этого вопроса заключается в том, что разрабатывается приложение и теперь он хочет создать дистрибутивный пакет. Обычно это заканчивается примерно так:
.../my-application-folder
| -- lib/*.jar
| -- main.jar
| -- config.properties
Может быть несколько конфигурационных файлов. Конфигурация самого приложения, конфигурация используемой рамки ведения журнала и т. Д. Это не имеет значения. Если вы хотите получить доступ к таким ресурсам, вы должны сделать это в два этапа:
1) Убедитесь, что все папки, содержащие ваши ресурсы (такие файлы конфигурации являются ресурсами), являются частью пути к классам. Если вы запустите свой JAR-файл (здесь main.jar) с помощью команды java -jar main.jar
, этот JAR-файл должен содержать файл манифеста, содержащий каталог .
, и все необходимые библиотеки JAR в записи класса. [Альтернатива: Возможно, все ваши файлы конфигурации находятся в конфиге/подпапке. Тогда эта папка должна быть частью классового пути]
2) Внутри приложения вы доступ к этим ресурсам с загрузчиком класса:.
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource(neededResource);
// do something with url, e.g. open stream, read from it, and close stream
Если у вас есть пользовательский настраиваемый путь, есть несколько возможностей , Вы могли бы, например, передать системное свойство в приложение, как сказал Редди в своем комментарии. Вы также можете иметь свойство в файле конфигурации, который вы загружаете в начальной части вашего приложения. Однако у вас есть путь к этой настраиваемой папке в руке (во время выполнения). Затем вы делаете следующее:
String customizablePath = getCustomizablePath();
URL customizablePathURL = new File(customizablePath).toURI().toURL();
ClassLoader loader = new URLClassLoader(new URL[] {customizablePathURL});
Тогда вы можете продолжить, как указано выше.
- 1. Как просмотреть папку в том же каталоге, что и приложение
- 2. Создать папку в том же каталоге, что и скрипт
- 3. Невозможно получить компилятор Janino для компиляции файлов в том же каталоге, что и jar
- 4. Как получить доступ к базе данных из дерби в том же каталоге, что и jar?
- 5. Java: Доступ к файлу, который находится в том же каталоге, что и .jar
- 6. Java. Создайте файл в том же каталоге, что и .jar, если он еще не существует.
- 7. Как открыть файл в том же каталоге, что и .jar-файл приложения?
- 8. Прочитать файл в том же каталоге, что и класс?
- 9. Доступ к файлам в том же каталоге, что и скрипт
- 10. Проверьте, существует ли файл в том же каталоге, что и файл jar
- 11. Как создать папку в том же каталоге, что и веб-приложение?
- 12. Java listFiles в каталоге jar
- 13. Приложения Java FX в одном и том же каталоге
- 14. Как загрузить WAV-файл из файла jar без ресурсов в том же каталоге, что и файл jar
- 15. Java, ссылающийся на класс в том же каталоге
- 16. Чтение из файла в том же каталоге
- 17. Java: Доступ к файлам, которые находятся в том же каталоге, что и исходный файл
- 18. Python, найти файл в том же каталоге
- 19. Как создать копию файла в том же каталоге в java?
- 20. java.lang.ClassNotFoundException при запуске jar и его зависимости находится в том же каталоге
- 21. получить системную дату в том же формате, что и система
- 22. Grunt с Uglify в том же каталоге src и dest
- 23. Несколько экземпляров CakePHP в том же каталоге
- 24. Как сохранить созданный файл в том же каталоге проектов? Java
- 25. Как получить Date в том же формате, что и String
- 26. PHP Список файлов в том же каталоге
- 27. Wordpress плагин проблема: не может получить текстовый файл в том же каталоге, что и .php
- 28. Получить имя папки в том же каталоге, что и файл bat
- 29. Как получить файлы в каталоге jar-файла в java?
- 30. Проблема импорта объекта в том же каталоге
Используйте тот же путь, что использовали для экспорта? –
Вы хотите получить доступ к папке, в которой находится ваш Jar-файл? – dARKpRINCE
Но пользователь может изменить путь. –