2012-06-01 54 views
5

Trong plugin Eclipse tùy chỉnh của tôi, tôi có tên lớp hoàn toàn đủ điều kiện của một lớp Java dưới dạng một Chuỗi và muốn biết đường dẫn tệp thực tế của nó. Trong thực tế, tôi muốn biết tên của thư mục nguồn mà nó nằm trong.Làm cách nào để xác định đường dẫn tệp tuyệt đối của tệp nguồn Java trong plugin Eclipse?

Lớp này có thể là từ bất kỳ dự án Java nào trong Vùng làm việc. Tên thư mục nguồn là tùy ý.

Tôi sử dụng Eclipse 3.6.

Cảm ơn!

Trả lời

2

Bạn sẽ phải sử dụng API công cụ tìm kiếm. Xem org.eclipse.jdt.core.search.SearchEngine.

Bạn có thể thấy rằng có nhiều chức năng tĩnh khác nhau mà bạn có thể gọi, mỗi chức năng có các tùy chọn riêng của chúng. Bạn sẽ cần phải tạo một org.eclipse.jdt.core.search.SearchPattern thích hợp và sau đó chuyển nó đến công cụ tìm kiếm cùng với phạm vi (không gian làm việc) và người yêu cầu (cái gì đó tập hợp tất cả các kết quả).

Thông thường, bạn sẽ nhận được một loạt các nội dung, như IType s, là API công khai để truy cập các loại trong mô hình Java. Bạn có thể gọi IType.getResource().getLocation() để có được vị trí hệ thống tệp của bất kỳ loại nào. Phương thức getResource có thể trả về null, vì vậy bạn cần kiểm tra điều đó.

+0

Cảm ơn bạn! Điều này nghe có vẻ rất hứa hẹn. Tôi sẽ có thể thử nó vào thứ hai, và cho bạn biết nếu nó hoạt động. Bạn có thể đề xuất phương pháp 'SearchEngine' cụ thể không? –

+0

Hộp thoại Loại Mở (Control + Shift + T) Sử dụng cùng một SearchEngine. – Ravi

+0

@Ravi Vâng, đó là những gì tôi đã hy vọng! Btw, tôi có thể đơn giản tạo một thể hiện mới của lớp 'SearchEngine' hay tôi cần lấy nó từ một số nhà máy Eclipse? –

2

Bạn cần sử dụng JDT API stuff để truy cập vào số IResource của lớp Java. Từ đó bạn có thể sử dụng Resource API để lấy các thư mục chứa và bất cứ thứ gì bạn cần.

Các vấn đề liên quan