2012-02-18 78 views
7

Tôi hiện đang cố gắng ghim ứng dụng Java vào thanh tác vụ Windows 7. Ứng dụng được khởi chạy với Launch4j. Biểu tượng chương trình được hiển thị chính xác nhưng nhấp chuột phải vào biểu tượng trên thanh tác vụ chỉ hiển thị menu ngữ cảnh với mục nhập "Đóng cửa sổ". Không có mục nhập trình đơn để ghim ứng dụng vào thanh tác vụ. Kéo tập tin EXE vào thanh tác vụ cũng không hoạt động đúng cách. Khi nhấp vào trình khởi chạy mới này trên thanh tác vụ thì biểu tượng thứ hai sẽ xuất hiện trên thanh tác vụ.Ghim một ứng dụng Java bằng cách sử dụng Launch4j vào thanh công cụ Windows 7

Tôi làm theo các hướng dẫn của các giải pháp cho hai câu hỏi này để giải quyết vấn đề nhưng nó đã không giúp đỡ:

Những thứ JNA từ câu hỏi thứ hai/giải pháp biên dịch và không ném bất kỳ ngoại lệ. Tôi có thể đọc id ứng dụng sau khi cài đặt. Nhưng tôi vẫn không thể ghim ứng dụng vào thanh tác vụ.

Tôi đã tạo ra một ứng dụng nhỏ thử nghiệm trên Github đó chứng tỏ vấn đề:

https://github.com/kayahr/launch4jtest

Ứng dụng sử dụng Maven như xây dựng hệ thống. Chỉ cần chạy mvn package và bạn sẽ tìm thấy tệp ZIP trong thư mục đích chứa tệp EXE và tệp jna.jar cần thiết để đặt id ứng dụng này. Giải nén ZIP này vào một số thư mục, nhấn đúp vào EXE và cố gắng ghim ứng dụng vào thanh tác vụ và bạn sẽ thấy vấn đề.

Vì vậy, có vấn đề gì với ứng dụng này?

+0

Tôi đã thực hiện thành công việc này nhưng không phải thông qua Maven cho một tệp thực thi được tạo bằng cách sử dụng Launch4J. Bạn cần tạo lối tắt biểu tượng nhúng thông tin AppUserModelID. InnoSetup có thể tạo lối tắt biểu tượng như vậy trong phần [Icons]. Cung cấp tên ứng dụng được gán cho AppUserModelID qua JNA. – ecle

+0

Xem http://stackoverflow.com/questions/5646813/how-to-make-exe-file-for-izpack-installer-jar-file và http://stackoverflow.com/questions/5438651/launch4j-nsis- và-duplicate-pinned-windows-7-taskbar-icons – ecle

+0

@eee Vấn đề là: Tôi cần phải tạo trình cài đặt này trên Linux vì tôi không có quyền truy cập vào một hộp Windows trong thời gian xây dựng. Có một plugin cho NSIS nhưng điều này cũng chỉ chạy trên Windows vì nó trực tiếp gọi một số cuộc gọi Windows API. Và ngay cả khi tôi quản lý để sửa đổi các phím tắt này: Điều gì xảy ra khi người dùng bắt đầu trực tiếp EXE hoặc tạo một lối tắt tùy chỉnh từ tệp EXE? Sau đó, nó vẫn không hoạt động. – kayahr

Trả lời

4

N.B. Viết lại một số nhận xét ban đầu trong bài đăng chính theo yêu cầu của kayahr :)

Bạn cần tạo lối tắt biểu tượng nhúng thông tin AppUserModelID. InnoSetup có thể tạo lối tắt biểu tượng như vậy theo phần [Icons]. Cung cấp tên ứng dụng được gán cho AppUserModelID qua JNA. liên kết đề nghị để đọc:

How to make .exe file for izpack installer .jar file

Launch4j, NSIS, and duplicate pinned Windows 7 taskbar icons

  1. Nó hoạt động khi kéo và thả các tập tin EXE (không tắt biểu tượng của nó) vào Windows 7 thanh tác vụ để tạo ra một biểu tượng gắn;
  2. Nó hoạt động khi chạy tệp EXE và sau đó chọn trình đơn tùy chọn "ghim vào thanh tác vụ" để tạo biểu tượng được ghim. Nếu bạn không đặt AppUserModelID, điều này là không thể; thậm chí nó sẽ gây ra một hành vi kỳ lạ như có javaw.exe "biểu tượng" trên thanh tác vụ thay vì biểu tượng exe của bạn kể từ khi Launch4J gọi jar thực thi bằng cách sử dụng javaw.exe (biểu tượng gắn đôi)

Để chạy builder cài đặt dựa trên Windows dưới Linux, tham khảo này như một hướng dẫn:

http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/

Vâng, như đã đề cập bởi kayahr, tính năng Windows 7 này sẽ chỉ hoạt động khi phím tắt biểu tượng của nó được nhúng AppUserModelID vẫn còn nguyên vẹn (nghĩa là nó không bị xóa/xóa).

+0

Cần lưu ý rằng phương pháp này chỉ hoạt động nếu phím tắt có sẵn ở một vị trí cụ thể! Menu Bắt đầu. Tôi có thể xác nhận rằng điều này không hoạt động nếu bạn có trình cài đặt tạo lối tắt trong Program Files (bên cạnh '.exe'). Tôi đã mất tâm trí của tôi cố gắng tìm ra lý do tại sao tôi đã không thể pin khi bắt đầu từ exe (tôi chỉ có thể pin bằng cách kéo phím tắt để thanh tác vụ, sau khi ghim bắt đầu từ exe không nhóm với các phím tắt được ghim). Điều đáng nói đến là tôi đang chạy tài khoản người dùng không phải quản trị viên và điều này có thể là các quyền liên quan. – predi

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