Chciałbym przeczytać zasób z mojego słoika w następujący sposób:
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferredReader reader = new BufferedReader(new FileReader(file));
//Read the file
i działa dobrze podczas uruchamiania go w Eclipse, ale jeśli wyeksportuję go do słoika, uruchom go, pojawi się wyjątek IllegalArgumentException:
Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical
i naprawdę nie wiem dlaczego, ale z pewnymi testami odkryłem, że się zmieniam
file = new File(getClass().getResource("/file.txt").toURI());
do
file = new File(getClass().getResource("/folder/file.txt").toURI());
wtedy działa odwrotnie (działa w słoiku, ale nie zaćmienie).
Korzystam z Eclipse, a folder z moim plikiem znajduje się w folderze zajęć.
getResourceAsStream
nadal jest to prostsze i bardziej przenośne rozwiązanie problemu.