У меня есть следующая структура пути к основному классу:
D:/java/myapp/src/manClass.java
и я хочу поместить файл свойств в
D:/java/myapp/config.properties
, который будет содержать имя файла и некоторые другие конфигурации. Я установлю имя файла в файле свойств следующим образом: file=file_to_read.txt
этот file_to_read.txt
будет расположен в D:/java/myapp/folder_of_file/
Основной класс сначала прочитает имя файла из файла свойств, а затем получит содержимое из файла.
Я могу сделать это, если оба config.properties
и file_to_read.txt
находятся в src/
с mainClass.java
. Но не удалось добиться того, как я хочу это сделать.
Кто-нибудь может помочь мне с этим? Мне нужно ваше предложение о том, что я могу сделать, если я хочу поместить папку myapp
в любое место на моем диске с той же внутренней структурой, которую я описал выше, и программа выполнит эту работу правильно.
Мне также нужно ваше предложение, что если я хочу выполнять работу из jar-файла, созданного после сборки проекта, то могу ли я сделать это без каких-либо проблем?
Я пытался просто прочитать файл свойств следующим образом:
URL location = myClass.class.getProtectionDomain().getCodeSource().getLocation();
String filePath = location.getPath().substring(1,location.getPath().length());
InputStream in = myClass.class.getResourceAsStream(filePath + "config.properties");
prop.load(in);
in.close();
System.out.println(prop.getProperty("file"));
Но это дает ошибку при попытке получить свойство из файла свойств.Спасибо!