Tôi muốn đọc một tài nguyên từ trong bình của tôi như vậy:
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferredReader reader = new BufferedReader(new FileReader(file));
//Read the file
và nó hoạt động tốt khi chạy nó trong Eclipse, nhưng nếu tôi xuất nó sang một jar thì chạy nó có IllegalArgumentException:
Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical
và tôi thực sự không biết tại sao nhưng với một số thử nghiệm tôi đã tìm thấy nếu tôi thay đổi
file = new File(getClass().getResource("/file.txt").toURI());
đến
file = new File(getClass().getResource("/folder/file.txt").toURI());
sau đó nó hoạt động ngược lại (nó hoạt động trong bình nhưng không nhật thực).
Tôi đang sử dụng Eclipse và thư mục chứa tệp của tôi nằm trong một thư mục lớp.
getResourceAsStream
vẫn là một giải pháp đơn giản và di động hơn cho vấn đề.