Hướng dẫn đổi đuôi JAR thành EXE

Chào cả nhà :slight_smile: . Hôm nay mình sẽ hướng dẫn các bạn đổi đuôi file .jar thành .exe dễ nhất.
Nhưng trước hết bạn nên tìm hiểu trước một tí ^^

JAR là gì?

JAR File (Java Archive file) là file để gói chung nhiều file khác, như zip file vậy. Thật ra, nếu bạn có một cái jar file, đổi extension “.jar” thành “.zip” thì sẽ có được một cái zip file.

  • Mục đích tạo jar file là để … gói nhiều tthành phần của Project lại thành một.
    Có nhiều loại jar file, mình xin tạm chia thành hai loại: Runnable Jar File và Non-runnable Jar File. Runnable Jar thì để chạy như executable file của C, C++ vậy, có nghĩa là nếu như bạn double click vào jar file đó, nó sẽ khởi động chạy. Loại kia (non-runnable) thì chỉ như zip file.

EXE là gì?

Trên Windows, mọi thứ đều hoạt động bởi EXE (chỉ app thôi nhé ^^ và… vrs nữa). Exe là viết tắt của Executable, tức là những file có thể thực hiện, có thể chạy được trên Windows. Nói ngắn gọn nó là file chương trình. Nó cho phép double-click là có thểchạy ngay.

Vậy tại sao lại đổi đuôi Jar -> Exe

Như một số bạn dùng các ngôn ngữ như C/C++ hay Pascal,… thì sau khi built thì nó sẽ cho ta file .exe, còn Java, built kiểu nào nó cũng ra .jar. Thì tại sao lại như vậy?
C/C++ hay Pascal vốn là những ngôn ngữ Native nên sẽ cho ra file run cũng native với HĐH sử dụng nó (ở đây ta chỉ nói đến Win). Còn Java là đa nền nên Runtime Environment của nó sẽ nativeless nên khi sinh file built, thì thay vì .exe thì nó lại sinh ra file của RE dùng nó (ở đây là .jar)
Vậy tại sao ta lại nên dùng EXE thay vì dùng JAR ? Thì việc đó là tùy vào các bạn, khi bạn muốn dùng từ Cục gạch đến AppleMac hay bay từ Win->Lin hay bạn là member cùa Open Source ? thì JAR là sự lựa chọn tuyệt vời.
Nhưng nếu lựa chọn đó là tuyệt thì tại sao người ta vẫn dùng .exe (Netbean built bằng java vẫn xài exe) EXE là file thực thi và chỉ có chức năng thực thi nên nó bảo mật mã nguồn, rất ít app nào có thể dịch ngược exe thành mã nguồn nên nếu bạn không muốn người dùng tùy chỉnh mã nguồn hay thấy được các thuật toán, cơ chế độc quyền của bạn và không mất bản quyền (mình có dịch ngược exe một lần rồi :). Kết quả ra là một đống kí tự dài ngoằn và chả hiểu wtf gì cả ^^), chạy native với windows thì bạn nên dùng .exe còn mà xài .jar là bị dịch ngược lại ngay. (Một số bạn import nó vào project rồi bung ra là thấy hết bộ xương luôn ^^).

Vậy làm sao để đổi file jar thành exe

Việc này sẽ rất khó khi các bạn dùng IDE hay CMDL và cũng chẳng phải đổi trực tiếp bằng F2 nên bạn cần một phần mềm bện thứ 3 (không dùng Format Factory đâu :joy:)
Mình xin đề cử Launch4j vì nó miễn phí và … hơi dễ dùng (hơi thôi nhé ^^) và cũng nhẹ

B1. Bạn vào link: http://sourceforge.net/projects/launch4j/files/launch4j-3/3.8/launch4j-3.8-win32.exe/download
B2: Bạn tải về ròi tiến hành cài đặt
B3: Chạy chương trình.
B4: Nhập các thiết lập cần thiết rồi nhấn vào icon “Bánh rang”.
B5: Đến địa chỉ export file xóa cái file .log đi và tận hưởng :smiley:

quá trình thiết lập

Mình xin nói rằng, đây là một phần mềm có thiết kế khá tệ (như là của Coder làm vậy). nên mình cần giới thiệu sơ qua cho các bạn một tí (mình chỉ nói những cái chính thôi, còn lại thì bạn cứ gặp thánh GG mà hỏi :joy: )
Thẻ Basic

  • Output file: đặt địa chỉ xuất file ra (có cả tênfile.exe luôn nha ^^)
  • Jar: đặt địa chỉ file Jar cần đổi đuôi
  • icon: đặt địa chỉ hình ico cho app của bạn (đẹp thôi ^^)
  • process priority: đặt trạng thái của CPU khi run (app nhỏ thì idle hoặc normal)
  • Phan “Java download and support” cho phep ban tai xu ly loi khi may tinh user khong co java

Thẻ classpath thì chỉ là chọn main class của app để run thôi

Thẻ Header chọn loại app của bạn GUI hoặc Console

Thẻ JRE (quan trọng)

  • Bundled JRE Path: chỉ đường dẫn đến thư mục chứa java (của bạn- không phải của người dùng) và các tùy chọn liên quan
  • Search Option: tùy chỉnh việc lựa chọn phiên bản Java và Runtime Environment
  • Option: là phần đặt heap size của app và nhập biến môi trường (bắt buộc) của Java và Registry
  • Splash: là phần đặt hình ảnh biểu trưng cho app của bạn (như Netbean, eclipse, Code::Block đều có splash)
  • Version info: nơi đặt các thông tin về phần mềm
  • Message: nơi đặt các thông báo khi có Exception liên quan dến việc khởi động app

Chúc các bạn thành công và năm mới vui vẻ ^^

6 Likes

thanks ^^ nhưng ít ra cũng đở bị xem code ^^ :smiley:

ồ. Nguy hiểm thật. Thanks bạn nhiều nha. Để mình test thử ^^

hơi lằng nhằng xíu :blush: dùng Excelsior JET cho tiện :smiley: có hỗ trợ encode và build ra các thể loại luôn :smile:

1 Like

Em có code game rắn săn mồi và chuyển từ
java-> jar-> exe theo hướng dẫn trong video dưới đây
File exe thì đã chạy được rồi nhưng khi em gửi cho bạn em thì chạy không được, hình như do bạn em không có JDK. Anh chị cho em hỏi làm sao để từ java-> exe mà file exe đó có thể chạy được ở máy khác ạ.
Em cảm ơn.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?