Tôi đang làm việc với một dự án được thiết lập bằng cấu trúc thư mục Maven chuẩn nên tôi có một thư mục có tên là "resources" và trong đó tôi đã tạo một thư mục có tên là "fonts" và sau đó đặt một tệp vào đó. Tôi cần phải vượt qua đường dẫn tệp đầy đủ String
(của tệp nằm trong cấu trúc dự án của tôi, tại resources/fonts/somefont.ttf
) đến một đối tượng tôi đang sử dụng, từ thư viện của bên thứ 3, như bên dưới, tôi đã tìm kiếm trong một thời gian nhưng đã trở thành một chút bối rối như một cách thích hợp để làm điều này. Tôi đã thử như dưới đây nhưng nó không thể tìm thấy nó. Tôi nhìn vào sử dụng ResourceBundle
nhưng điều đó dường như liên quan đến việc thực hiện một đối tượng thực tế File
khi tôi chỉ cần đường dẫn để chuyển vào một phương thức như bên dưới (không có cuộc gọi phương thức thực tế trước mặt tôi) bộ nhớ):Java (ứng dụng web maven), nhận đường dẫn tệp đầy đủ cho tệp trong thư mục tài nguyên?
FontFactory.somemethod("resources/fonts/somefont.ttf");
tôi đã nghĩ là có một cách, với một dự án với cấu trúc thư mục tiêu chuẩn Maven để có được một tập tin từ thư mục tài nguyên mà không cần phải sử dụng đường dẫn tương đối đầy đủ từ lớp/gói. Bất kỳ lời khuyên nào về điều này được đánh giá cao.
Tôi không muốn sử dụng đường dẫn mã hóa vì các nhà phát triển khác nhau làm việc trong dự án có các thiết lập khác nhau và tôi muốn đưa nó vào dự án để họ trực tiếp nhận được khi họ kiểm tra nguồn dự án .
này là dành cho một ứng dụng web (Struts 1.3 ứng dụng) và khi tôi nhìn vào các tập tin bùng nổ WAR (mà tôi đang chạy dự án tắt của qua Tomcat), các tập tin là tại địa chỉ:
<Exploded war dir>/resources/fonts/somefont.ttf
Có gì sai khi nhận đối tượng Tệp từ ResourceBundle, sau đó sử dụng File.getAbsolutePath() để chuyển tới FontFactory.somemethod()? (Hãy nhớ rằng bạn không được bảo đảm để có được một đối tượng File nếu WAR không được mở rộng khi triển khai.) – BobG
có lẽ không có gì là sai với điều đó :) cảm ơn, tôi không phải tất cả những gì quen thuộc với 'ResourceBundle' vì vậy đã không nhận ra điều này sẽ làm việc, cảm ơn cho các tip – Rick
Trên thực tế hãy để tôi gửi cho bạn một số mã giả tôi đã sử dụng với thành công bên dưới - không chắc chắn về ResourceBundle, nhưng Tài nguyên (ngoài mùa xuân) hoạt động: – BobG