Я попытался открыть файл, используя относительный путь, так как мой файл находится в корневой папке моего проекта.
BufferedReader reader = new BufferedReader(new FileReader("text.h"));
Это не сработало.
Поэтому я напечатал рабочий каталог, но это приводит меня в каталог, в котором установлено eclipse.
System.out.println(new File(".").getAbsolutePath());
Моя структура проекта:
Project
--bin
--core
text.h
--src
text.h
--com
--home
--core
Main.java
text.h
--editor
--ui
text.h
Я скопировал текстовый файл в разных местах, внутри каталога моего проекта, и я пробовал разные пути, но никто не работал.
Если я скопирую файл в каталог, где установлен Eclipse, я могу прочитать файл со следующим путем.
BufferedReader reader = new BufferedReader(new FileReader("text.h"));
Как я могу прочитать файл из корневой папки моего проекта?
String workingDir = System.getProperty("user.dir");
BufferedReader reader = new BufferedReader(new FileReader(workingDir+"\text.h"));
Значение workingDir дает путь к текущему рабочему каталогу
попробуйте это, это может вам помочь
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
System.out.println("URL " + url.toExternalForm());
URL file:/D:/workspace/myproject/bin/
или когда jar нажал:
URL file:jar:/D:/workspace/myproject/bin/myproject.jar!/....
MainClass.class.getProtectionDomain()...
конечно. ;) в противном случае Class.class
.