2012-04-06 24 views
11

Tôi muốn mở các tệp tùy ý từ Eclipse. Hiện tại tôi đang làm như vậy:Eclipse: Cách nhắc người dùng chọn một ứng dụng để mở tệp?

if (((File) selectedElement).isFile()) { 
    try { 
      Desktop.getDesktop().open((File) selectedElement); 
    } catch (IOException e) { 
     //TODO prompt for the appropriate application to open this file. 
     e.printStackTrace(); 
    } 
} 

Thật không may, điều này chỉ hoạt động, nếu hệ điều hành có ứng dụng mặc định liên kết với loại tệp. Đó là lý do tại sao, nếu không có bất kỳ ứng dụng mặc định nào được xác định, tôi muốn hỏi người dùng ứng dụng nào tôi nên sử dụng. Nhưng tôi không có ý tưởng làm thế nào để 1) tìm thấy một danh sách các ứng dụng có sẵn và 2) mở tập tin với ứng dụng đó. Bất kỳ gợi ý nào để thực hiện điều đó theo cách độc lập với nền tảng?

+0

Bạn có nghĩa là "từ Eclipse", như trong, đây là một ứng dụng RCP hoặc plugin; hoặc bạn có nghĩa là Eclipse là IDE của bạn? Bởi vì sử dụng Desktop.open() không phải là cách Eclipse để làm điều này ngay từ đầu. –

+0

Tôi đang viết một plugin. Plugin này có khả năng duyệt qua tất cả các tệp của hệ điều hành. Bây giờ nếu các tập tin không phải là tập tin văn bản hoặc các tập tin java, tôi muốn mở các tập tin với các ứng dụng mặc định trong hệ điều hành. Ví dụ tài liệu docx với MS Word. Điều này hoạt động miễn là loại tệp được liên kết với một ứng dụng trong hệ điều hành. Nếu filetype chưa phải là một ứng dụng mặc định trong hệ điều hành, cách tiếp cận của tôi không thành công và tôi muốn hỏi người dùng ứng dụng nào tôi nên sử dụng. Nhưng tôi không biết làm thế nào tôi có thể làm điều đó. –

Trả lời

4

Bất kỳ giải pháp nào tôi có thể nghĩ sẽ tùy thuộc vào hệ điều hành. Ví dụ: nếu ứng dụng của bạn đang chạy trong cửa sổ, bạn có thể cung cấp cho người dùng danh sách tất cả các tệp * .exe trong thư mục Program Files. Hoặc tất cả các ứng dụng trong/bin,/sbin,/usr/bin,/usr/share/bin cho một hệ điều hành Linux.

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