Thứ Ba, 28 tháng 5, 2013

Hướng dẫn Đóng gói Project Java thành file cài đặt jar và EXE

Đóng gói 1 ứng dụng java thành file EXE



Bạn đã biết được cách tạo 1 file execuable jar file ở bài viết trước, bây giờ tôi sẽ chỉ cho chúng ta cách biến nó thành file exe.

Đầu tiên, bạn phải có phần mềm exe4j, bạn có thể download phần mềm này tại đây

Sau khi cài đặt, Chương trình EXE4J sẽ hởi động và yêu cầu bạn cung cấp serial key, bạn chạy 1 console sau đó thực thi lệnh java Keygen, bạn sẽ có được serial, copy và paste vào để bẻ khóa ứng ụng.
Màn hình sau xuất hiện OK sau khi bạn thực thi lân đầu thành công.First

Nhấnnút Next, Chọn “JAR in EXE” mode, nhấn Next
E2

Gõ Tên của ứng dụng, ví dụ MyFirstEXE, Chọn output directory, ví dụ C:\TyEx. Nhấn Next
E3

Chọn các tham số như hình. Nhấn Next
E4

Nhấn nút dấu + màu xanh, chọn Archive trong phần “Entry Type”, chọn file Jar của chúng ta như hình
E5
Nhấn OK, sau đó nhấn nút “…” của ô text “Main Class”, exe4j sẽ tự động tìm thấy lớp có chứa phương thức main. Chọn lấy rồi nhấn OK. Kết quả như hình
E6
Nhấn Next, Chọn Version của JRE mà ứng dụng support, phần Minimum version gõ vào 1.3, phần Maximum Version để trống. Nhấn Next.

Bước tiếp theo sẽ là chọn splash screen(màn hình sẽ xuất hiện trong khi ứng dụng nạp vào bộ nhớ).
E7
Bạn có thể bỏ qua bước này.

Nhấn Next để xem báo cáo tổng quát các thiết lập của bạn. Nhấn Finish để chương trình đóng gói ứng dụng của bạn. Kết quả như sau
E8

Nhấn nút “Click here to start the Application” để chạy thử ứng dụng của bạn.

Trong thư mục C:\TyEx của bạn sẽ có 1 file MyFirstEXE.exe. Bây giờ bạn có thể triển khai ứng dụng của bạn dưới dạgh file exe được rồi.

Phu u u  u u u u u ù. May quá! Chúc thành công!

Đóng gói 1 ứng dụng thành executable-jar file


Đẻ đóng gói một ứng dụng thành dạng jar, ta có thể dùng tool jar sẵn có của bộ JDK. Các công việc sẽ từng bước như sau:

0. Nhớ đặt sẵn tùy biến môi trường PATH đến thư mục  %JAVA_HOME%\bin và .; , trong đó %JAVA_HOME% là thư mục cài đặt JDK.

1. Đầu tiên bạn tổ chức thư mục code của bạn cho tốt, sau đó biên dịch chúng đảm bảo không có lỗi. Ghi nhớ tên lớp thực thi (lớp chứa hàm main) của ứng dụng.

2. Tạo file manifest dạng như sau






Manifest-Version: 1.0
Main-Class:tên_lớp_có chứa_hàm_main

3.Thực thi tool jar, cú pháp tổng quát của tool jar như sau






Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files …
Options:
-c  create new archive
-t  list table of contents for archive
-x  extract named (or all) files from archive
-u  update existing archive
-v  generate verbose output on standard output
-f  specify archive file name
-m  include manifest information from specified manifest file
-e  specify application entry point for stand-alone application bundled into an executable jar file
-0  store only; use no ZIP compression
-M  do not create a manifest file for the entries
-i  generate index information for the specified jar files
-C  change to the specified directory and include the following file
If any file is a directory then it is processed recursively. The manifest file name, the archive file name and the entry point name are specified in the same order as the ‘m’, ‘f’ and ‘e’ flags. Example 1: to archive two class files into an archive called classes.jar:
jar cvf classes.jar Foo.class Bar.class
Example 2: use an existing manifest file ‘mymanifest’ and archive all the
files in the foo/ directory into ‘classes.jar’:
jar cvfm classes.jar mymanifest -C foo/ .





Ví dụ:

Giả sử chúng ta có 1 ứng dụng đơn giản gồm 2 lớp MyJFame.java và Running.java , chúng được lưu trong thư mục TyEx. Nội dung của chúng như sau






package exjar; import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;public class MyJFame extends JFrame{
public MyJFame() {
super(“Hello World!”);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(400,200);
JLabel lbl=new JLabel(“CIAO MONDO!”,JLabel.CENTER);
lbl.setFont(new Font(“Arial”,Font.BOLD,40));
lbl.setForeground(Color.red);
this.add(lbl);
}
}








package exjar; public class Running {
public static void main(String[] args) {
new MyJFame().setVisible(true);
}
}

Ở đây lớp chứa hàm main là lớp Running.

Biên dịch các tập tin java bằng lệnh sau hoặc copy lệnh sau vào tập tin có tên build.bat rồi thực thi






javac -d . *.java
pause

Trong thư mục TyEx ta sẽ có thư mục exjar trong đó chứa 2 tập tin MyJFame.class vàRunning.class

Tiếp theo ta tạo tập tin manifest có tên Ty.mf trong thư mục TyEx với nội dung sau:






Manifest-Version: 1.0
Main-Class: exjar.Running

Cuối cùng, ta sẽ đóng gói chúng thành tập tin jar tự chạy (executable jar file) bằng lệnh sau hoặc bạn cũng có thể tạo tập tin CreateJARFile.bat trong thư mục TyEx với nội dung sau rồi thực thi nó để tạo jar fiel






jar cvfm MyApp.jar Ty.mf *.java exjar/*.*
pause

Giải thích: c: (create) tạo file jar mới,    f: chỉ định tên file jar (của chúng ta có tên MyApp.jar, v: (verbose output) in thông tin đóng gói ra màn hình, m: chỉ định file manifest. *.java: đưa tất cả source file ở thư mục hiện tại vào file jar, exjar/*.*: đưa tất cả các file của thư mục exjar vào jar file.

Thực thi file này ta sẽ được tập tin MyApp.jar. Thực thi file này bằng cách double-click hoặc enter kết quả như sau:
KetquaJAR

OK, như vậy bạn đã tạo được 1 file jar tự chạy (executable jar file) được rồi đó.

1 nhận xét:

  1. Khi build ra trong netbeans thì nó có thư mục dist trong đó chứa file jar và lib mình muốn đóng gói cả cái đấy cơ. chứ mỗi file jar thì đưa đi đâu lại fai cop lib theo à

    Trả lờiXóa