Trong dự án Maven tôi, tôi có đoạn mã sau trong phương thức main:Đường dẫn đến tệp tài nguyên trong dự án Maven là gì?
FileInputStream in = new FileInputStream("database.properties");
nhưng luôn có được một tập tin không tìm thấy lỗi.
Tôi đã đặt tệp vào src/main/resources và được sao chép đúng vào thư mục đích/lớp (tôi tin đó là hành vi mong đợi đối với tài nguyên Maven) nhưng khi thực sự chạy chương trình, có vẻ như nó không bao giờ tìm thấy tập tin. Tôi đã thử nhiều đường dẫn khác:
FileInputStream in = new FileInputStream("./database.properties");
FileInputStream in = new FileInputStream("resources/database.properties");
v.v. nhưng không có gì có vẻ hiệu quả.
Vì vậy, con đường thích hợp để sử dụng là gì?
Dựa trên "disown của" trả lời dưới đây, đây là những gì tôi cần:
InputStream in = TestDB.class.getResourceAsStream("/database.properties")
nơi TestDB
là tên của lớp.
Cảm ơn sự giúp đỡ của bạn, đã bị xóa!
Nếu bạn đang cố truy cập tệp từ phương thức tĩnh, getClass() không hoạt động. Có một sự thay thế trong trường hợp đó? – acarlow
Sử dụng tên lớp, ví dụ: Main.class.getResourceAsStream(). Bạn có thể sử dụng bất kỳ lớp hoặc trình nạp lớp nào, do đó hread.getContextClassLoader(). GetResourceAsStream() cũng hoạt động. –