Trước hết, đây không phải là một câu hỏi rất phổ biến về việc tạo một EXE từ các lớp Java. Tôi không cần phải làm thế.Thay thế biểu tượng trong Windows * .exe từ mã Java độc lập nền tảng mã nguồn mở
Để giải quyết NetBeans RFE #64612 mà không manual steps Tôi cần một Java (6+) thư viện mà có thể mất một hiện của Windows *.exe
tập tin và thay thế biểu tượng của nó với một sự thay thế trong một định dạng phổ biến. Tệp thực thi, mà là chung chung và dựng sẵn (được phân phối ở dạng nhị phân), đã biết cách tải một tệp cấu hình ứng dụng cụ thể và sau đó bắt đầu JRE với các JAR ứng dụng khác nhau, vv; vấn đề duy nhất là nó có một biểu tượng chung, và tôi muốn thay thế biểu tượng đó như một phần của một bản dựng Java thuần túy với một biểu tượng ứng dụng cụ thể, vì vậy nó trông đẹp hơn.
Thư viện phải có sẵn theo giấy phép nguồn mở không có virus; đa nền tảng (phải chạy trên Windows, Linux, Mac, Solaris) vì vậy không thể mở rộng một số công cụ trợ giúp đặc trưng cho hệ điều hành; và phải chấp nhận đầu vào PNG, mặc dù EXE phải hoạt động trên XP nên according to Wikipedia nên nhúng định dạng BMP. Ở mức độ cao, giả Ant như một công cụ xây dựng, tôi muốn một cái gì đó như thế này:
<replaceicon from="app.exe" to="hello.exe" icon="hello.png"/>
Có ai biết nếu một công cụ phù hợp với các thông số kỹ thuật đã tồn tại? Từ các tìm kiếm trên web khác nhau, tôi tìm thấy Launch4J, nhưng điều này dường như chỉ là ngã ba windres cho công việc thực tế, do đó không dễ dàng di chuyển. Tôi tìm thấy JSmooth trông có vẻ hứa hẹn hơn - dường như bao gồm mã Java để xử lý codec ICO và thao tác các tệp PE - nhưng đó là GPL. WinRun4J có vẻ sử dụng mã gốc cho thao tác biểu tượng, mặc dù tôi đã gặp khó khăn sau các nguồn của nó. Jimi được cho là xử lý định dạng ICO (cho rằng vấn đề tiêu chuẩn javax.imageio
dường như là tốt) nhưng tôi đoán không có cơ sở để cập nhật tài nguyên PE.
Câu hỏi liên quan: http://stackoverflow.com/questions/1614772/how-to-change-jframe-icon –
Một câu hỏi được liên kết trỏ đến http://java.net/projects/pe-file-reader nhưng đây là GPL và dường như chỉ đọc, không ghi, tệp PE. –