dự án của chúng tôi trong nhật thực xấp xỉ cho thấy các thư mục sau:Eclipse: xuất khẩu sang .jar VÀ bao gồm các file tài nguyên (ANT)
application
- src
- JRE System Library [1.6]
- Referenced Libraries
- lib
- rsc
Trong dự án của chúng tôi, chúng tôi muốn sử dụng File> Export ...> Executable JAR
Điều đó có hiệu quả, với một số ngoại lệ: Nếu chúng ta muốn chạy application.jar của mình, chúng ta vẫn cần phải sao chép thư mục rsc/trong cùng một vị trí như application.jar.
Trong rsc /, chúng tôi có các thư mục khác để tách các phần khác nhau. Về cơ bản, chúng ta nạp các mảnh bằng cách sử dụng mã (cũng một chút thay đổi, nhưng phong cách đường là đúng)
strUrl = "file:rsc/properties/Constants.properties";
url = new URL(strUrl);
ImageIcon icon = new ImageIcon(url);
tôi có thể click chuột phải vào rsc /> Build Path> Use as Source Folder.
Nhưng điều này không hoạt động vì eclipse không tự động sao chép thư mục rsc vào thùng/thư mục. Và sau đó chúng tôi không thể chạy nó nữa từ thiết bị đầu cuối (không được đóng gói vào bình)
EDIT: tại sao nhật thực không thể xử lý chính xác? Tại sao nó có vấn đề với thư mục đầu ra "lồng nhau"? Trong tab Source của hộp thoại Build Path, tôi có thể dễ dàng thêm rsc/-folder với thư mục đầu ra được đặt vào bin/rsc /, nhưng dường như không thể đặt các thư mục lồng nhau ...
CHỈNH SỬA 2: Bây giờ tôi đã có thể tạo tệp xml để tạo nội dung với kiến và bằng cách nào đó được quản lý để đưa thư mục rsc vào trong bình. Vẫn không chạy do lỗi tương tự. Tôi có thực sự cần phải kiểm tra các đường dẫn tài nguyên cho dù họ đang ở trong một JAR hay không? nội dung của JAR tại là những điều sau đây:
META-INF/
META-INF/MANIFEST.MF
configurator/
controller/
editor/
gui/
logic/
networking/
rsc/
rsc/gamesettings/
rsc/levels/
rsc/pics/
rsc/properties/
util/
nhưng Java vẫn ghét tôi và ném java.io.FileNotFoundException: rsc/properties/Constants.properties
với một stacktrace khoảng 100 dòng.
bất kỳ ai có ý tưởng cách thực hiện? thx & liên quan
Có. Đây là giải pháp, nhưng đánh dấu rsc/như src-thư mục trong nhật thực không thực hiện công việc. Một sinh viên khác dẫn tôi đến cùng một giải pháp. Vấn đề là chúng ta phải sử dụng Class.getResource ("..."), đường dẫn được thêm vào trước với một '/'. thx và kính trọng – Atmocreations
Xin lỗi, ý bạn là gì bởi 'Class # getResource()'? Không có phương thức tĩnh như vậy trong lớp 'Class'. – m0skit0
@ m0skit0 Phương pháp này không tĩnh, xin lỗi vì sự nhầm lẫn. –