2012-10-22 14 views
7

Các tùy chọn để đóng gói một JNLP như một ứng dụng không xuất hiện để tồn tại trong trang Preferences JDK 7 Java của Oracle như nó đã làm trong táo như đã nêu hereLàm cách nào để gói một jnlp với biểu tượng dock OSX; này không còn xuất hiện là có thể trong các ưu đãi java

OS X tích hợp máy tính để bàn với Java Web Start cho phép người dùng tạo một gói ứng dụng cục bộ từ bất kỳ ứng dụng Java Web Start nào. Lối tắt Cài đặt tạo trong Tùy chọn Java kiểm soát xem người dùng có được nhắc nhở tạo gói ứng dụng khi mở một ứng dụng Java Web Bắt đầu . Gói ứng dụng Java Web Start có tất cả các lợi ích của bó ứng dụng bản địa, được mô tả trong “OS X Application Gói.”

Để làm việc xung quanh này, tôi đang sử dụng Automator để tạo ra một .app mà chạy một kịch bản lệnh shell thực hiện một JNLP. Điều này cho phép tôi sử dụng biểu tượng ứng dụng, nhưng tất cả nỗ lực định cấu hình biểu tượng đế của tôi đều không thành công.

tôi đã cố gắng tạo ra một tập tin .icns sử dụng iconutil và nói thêm rằng vào thư mục Resources, sau đó xác định các tập tin .icns trong Contents/Info.plist thuộc lĩnh vực "Icon File" nhưng tôi vẫn nhận được biểu tượng cốc cà phê java trong vành móng ngựa khi chạy ứng dụng.

Một điều khác mà tôi đã thử là chuyển đối số -Xdock:icon=icon.jpg đến javaws nhưng điều này dường như chỉ hoạt động với các chương trình java thông thường.

Trả lời

2

Tôi đã tìm thấy giải pháp cho vấn đề của mình. Thay vì đóng gói biểu tượng trong tệp .app, bạn có thể tham chiếu nó trực tiếp trong jnlp. The JNLP Developer's guide chứa một mô tả của các yếu tố biểu tượng icon element

: Chứa một URL HTTP đến một tập tin hình ảnh trong hai định dạng GIF hay JPEG. Các biểu tượng được sử dụng để thể hiện ứng dụng

khi khởi chạy khi Java Web Start hiển thị ứng dụng cho người dùng ; trong Trình quản lý ứng dụng; trong lối tắt trên màn hình. Biểu tượng 64x64 được hiển thị trong khi tải xuống; trong Trình quản lý ứng dụng và trên các phím tắt trên máy tính để bàn, biểu tượng 32x32 được sử dụng. Java Web Start tự động thay đổi kích thước một biểu tượng với kích thước phù hợp.

Nó không đề cập rõ ràng đế OSX ở đó, nhưng một thử nghiệm nhanh cho thấy nó thực sự đặt biểu tượng ở đó.

+3

JWS rất sôi nổi. :) –

1

Tôi muốn giới thiệu một cách tiếp cận khác, điều này cũng sẽ giúp bạn với các phương pháp triển khai khác (không chỉ jnlp).

Bạn có thể sử dụng phản chiếu trong mã của mình để thêm mã OSX cụ thể. Tôi đã biên soạn ứng dụng của mình trên các cửa sổ và thêm biểu tượng dock cho mac.

javax.swing.ImageIcon icon = ... 
Class c = Class.forName("com.apple.eawt.Application"); 
Method m = c.getMethod("getApplication"); 
Object applicationInstance = m.invoke(null); 
m = applicationInstance.getClass().getMethod("setDockIconImage", javax.swing.ImageIcon.class); 
m.invoke(applicationInstance,icon); 
Các vấn đề liên quan