2012-03-06 39 views
17

tôi đã có thể thay đổi biểu tượng runtime sử dụng this example như thế nàyLàm cách nào để thay đổi biểu tượng tệp jar thực thi?

getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(getClass() 
.getClassLoader().getResource("MyProject/resources/myIcon.png"))); 

nhưng là có một cách để nói với NetBeans sử dụng myIcon.png cho file jar thực thi (/ dist/MyProject.jar MyProject) biểu tượng ?

+1

nếu dự án của bạn dựa trên Java Desktop Aplication (JSR296), thì không thể thay đổi biểu tượng tách Java trực tiếp, phương pháp này là riêng tư, không thể truy cập từ bên ngoài, chắc chắn là có thể, nhưng yêu cầu một hack khác. sử dụng các dòng mã chỉ dành cho biểu tượng của JFrame – mKorbel

+1

theo mặc định, mỗi khung công tác GUI có những hạn chế của nó đối với việc viết mã bằng tay của bạn – mKorbel

+0

Adobe đã tìm ra cách đặt biểu tượng cho tệp của họ, do đó, điều đó là có thể. Tôi nghĩ rằng vấn đề này là lý do quan trọng nhất mà các lọ thực thi (không có trình bao bọc) đã không bị bắt gặp trên Windows. –

Trả lời

7

Một wrapper phóng sự là giải pháp, tôi sử dụng launch4j, một nền tảng chéo nhẹ wrapper

launch4j website

+2

* "nền tảng chéo" * như trong: bạn có thể sử dụng nó trong quá trình xây dựng của bạn trên bất kỳ nền tảng nào, nhưng nó tạo ra tệp thực thi chỉ dành cho Windows, phải không? – Arjan

+2

nó không thay đổi biểu tượng tệp .jar. Nó tạo ra tập tin .exe từ .jar (và chỉ sau đó bạn có thể đặt biểu tượng cho .exe) – Tomasz

+0

@Tomek Họ làm ngay bây giờ. Theo liên kết. –

7

Bạn có thể sử dụng JSmooth để tạo tệp java thực thi và cũng liên kết biểu tượng với tệp đó.

+2

+1 trình bao bọc đẹp, nhưng ứng dụng của tôi cần phải hoạt động trên các máy chủ không có cửa sổ. – jacknad

+1

Có vẻ tốt, nhưng giống như @jacknad cho biết chỉ dành cho các máy chủ Windows (điều này là tốt), nhưng điều lớn đối với tôi là nó không được phát triển tích cực trong hơn 5 năm. – Kingsolmn

1

Một khả năng trên mac là sử dụng dòng này:

com.apple.eawt.Application.getApplication().setDockIconImage(new ImageIcon(getClass().getResource("resources/appIcon.png")).getImage()); 

Nó đặt biểu tượng của bạn cho dock. Tôi không thể kiểm tra nó bây giờ, tôi không làm việc trên một máy Mac nhưng hãy thử nó và làm cho tôi lên làm ngày.

+0

Xem thêm [câu trả lời này] (http://stackoverflow.com/questions/11253772/setting-the-default-application-icon-image-in-java-swing-on-os-x/29652666#29652666) để đảm bảo mọi thứ không thành công trên các máy không phải OS X. (Và điều này cần biên dịch được thực hiện trên máy Mac.) – Arjan

2

Không, không có, bởi vì biểu tượng được xác định bởi Java. Cách duy nhất để làm như vậy (ít nhất là cho Windows) là sử dụng trình bao bọc như launch4j và sau đó đặt đường dẫn biểu tượng. Nếu bạn đã gói exe với biểu tượng không hoặc sai, bạn có thể sử dụng Recource Hacker và sau đó theo dõi turtorials về cách thay đổi biểu tượng. Nếu không, bạn không thể thay đổi biểu tượng của .jar

+0

'Thêm One' cho ** Tài nguyên Hacker ** – fWd82

1

Như đã biết, không thể thay đổi nguyên nhân biểu tượng .jar nếu bạn muốn, bạn nên thay đổi tất cả các tệp .jar trong hệ điều hành của mình. Nhưng dù sao, một giải pháp là có thể. Bạn có thể tạo lối tắt cho .jar và sau đó bạn có thể thay đổi nó: Nút phải >> Thuộc tính >> Thay đổi biểu tượng.

enter image description here

tái bút: Tệp biểu tượng phải là tệp .ico, do đó bạn có thể sử dụng nhiều trang web để chuyển đổi trong phần mở rộng .ico nếu hình ảnh của bạn có hình khác.

Phương án 1: Bạn cũng có thể sử dụng Launch4j, đây là cách đơn giản nhất để tạo tệp thi hành ứng dụng.

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