2013-04-30 34 views
6

Tiêu đề là khó hiểu, nhưng không biết làm thế nào để giải thích điều này trong một vài từ:nghe cho "tập tin mở với ứng dụng java của tôi" sự kiện trên cửa sổ

Tôi có một ứng dụng java mà đọc tập tin * .example. Tôi cũng đã thêm một liên kết tệp nhờ vào install4j do đó, ứng dụng của tôi được khởi chạy khi người dùng nhấp đúp vào bất kỳ tệp nào có tiện ích mở rộng * .example

Có vẻ như install4j gửi đường dẫn tệp trong args[] để dễ mở tệp đó và hiển thị nó trong ứng dụng của tôi. NHƯNG điều gì sẽ xảy ra nếu ứng dụng đang chạy? Tôi chỉ có thể cho phép một phiên bản của ứng dụng như vậy, làm cách nào tôi có thể biết rằng người dùng đang mở một tệp?

Tôi đã thấy điều này: http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

Nhưng tôi vẫn không hiểu làm thế nào tôi nên sử dụng nó và những gì tôi nên thêm vào trong ứng dụng của tôi để nghe cho sự kiện này. Tôi có thể tìm một ví dụ ở đâu?

+0

Nếu bạn không thể tìm thấy giải pháp thông qua Install4J, luôn có [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info). [Demo dịch vụ tập tin.] (Http://pscode.org/jws/api.html#fs) cho thấy cách sử dụng nó để khởi động ban đầu, cũng như khi một tập tin mới được mở ra. –

Trả lời

4

Dựa trên những tài liệu bạn có liên quan đến, có vẻ như bạn có thể làm điều này:

StartupNotification.registerStartupListener(new StartupNotification.Listener() { 
    public void startupPerformed(String parameters) { 
     System.out.println("Startup performed with parameters " + parameters); 
    } 
}); 

Kể từ startupPerformed sẽ được gọi là từ chủ đề khác nhau, bạn sẽ cần phải chắc chắn rằng mã để xử lý các thông báo này là chỉ an toàn.

Các tài liệu cũng cho biết:

Đối với nhiều file, các file được bao quanh bởi hai dấu ngoặc kép và tách bằng dấu cách.

Vì vậy, bạn cũng sẽ cần phân tích cú pháp chuỗi tham số.

+0

nghe hay, tôi sẽ cố gắng và chấp nhận vào ngày mai. Cảm ơn bạn @andrewdotn !! – TheBronx

+1

nó hoạt động =) Tôi đã thêm 'i4jruntime.jar' làm thư viện cho dự án của tôi và sử dụng mã mẫu của bạn bên trong' main() '. Sự kiện này được kích hoạt khi ứng dụng đang chạy và bạn mở một tệp, và 'tham số' var chứa đường dẫn tuyệt đối của tệp. – TheBronx

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