Nếu tôi có tệp nguồn Java (* .java) hoặc tệp lớp (*. Class), làm cách nào tôi có thể chuyển đổi tệp thành tệp .exe?
Tôi cũng cần một trình cài đặt cho chương trình của tôi.
Nếu tôi có tệp nguồn Java (* .java) hoặc tệp lớp (*. Class), làm cách nào tôi có thể chuyển đổi tệp thành tệp .exe?
Tôi cũng cần một trình cài đặt cho chương trình của tôi.
Câu trả lời:
Công cụ Java Packager biên dịch, gói và chuẩn bị các ứng dụng Java và JavaFX để phân phối. Lệnh javapackager là phiên bản dòng lệnh.
- Tài liệu của Oracle
Các javapackager
tàu tiện ích với JDK. Nó có thể tạo tập tin .exe với -native exe
cờ, trong số nhiều thứ khác.
WinRun4j là một trình khởi chạy java cho windows. Nó là một thay thế cho javaw.exe và cung cấp các lợi ích sau:
- Sử dụng tệp INI để chỉ định classpath, lớp chính, vm args, chương trình args.
- Tên thực thi tùy chỉnh xuất hiện trong trình quản lý tác vụ.
- JVM bổ sung lập luận để sử dụng bộ nhớ linh hoạt hơn.
- Biểu tượng thay thế tích hợp cho biểu tượng tùy chỉnh.
- [thêm điểm đạn theo sau]
- Trang web của WinRun4J
WinRun4J là một tiện ích nguồn mở. Nó có nhiều tính năng.
Đóng gói JAR, tài sản và JVM của bạn để phân phối trên Windows, Linux và Mac OS X, thêm tệp thực thi gốc để làm cho nó xuất hiện như một ứng dụng gốc. Packr phù hợp nhất cho các ứng dụng GUI.
- packr README
packr là một công cụ mã nguồn mở khác.
JSmooth là một Wrapper thực thi Java. Nó tạo các trình khởi chạy Windows gốc (.exe tiêu chuẩn) cho các ứng dụng java của bạn. Nó làm cho việc triển khai java mượt mà hơn và thân thiện với người dùng hơn, vì nó có thể tự tìm thấy bất kỳ máy ảo Java đã cài đặt nào.
- Trang web của JSmooth
JSmooth là mã nguồn mở và có các tính năng, nhưng nó rất cũ. Bản phát hành cuối cùng là vào năm 2007.
JexePack là một công cụ dòng lệnh (tuyệt vời cho kịch bản tự động) cho phép bạn đóng gói ứng dụng Java (tệp lớp), tùy ý cùng với các tài nguyên của nó (như GIF / JPG / TXT / etc), vào một Windows EXE 32 bit được nén , chạy bằng Môi trường chạy thi hành Java của Sun. Cả hai ứng dụng giao diện điều khiển và cửa sổ đều được hỗ trợ.
- Trang web của JexePack
JexePack là phần mềm dùng thử. Thanh toán là cần thiết để sử dụng sản xuất và các tệp exe được tạo bằng công cụ này sẽ hiển thị "lời nhắc" mà không cần thanh toán. Ngoài ra, bản phát hành cuối cùng là vào năm 2013.
InstallAnywhere giúp nhà phát triển dễ dàng tạo phần mềm cài đặt chuyên nghiệp cho mọi nền tảng. Với InstallAnywhere, bạn sẽ thích ứng nhanh với các thay đổi của ngành, tiếp cận thị trường nhanh hơn và mang lại trải nghiệm hấp dẫn cho khách hàng. Và biết lỗ hổng của các thành phần OSS của dự án trước khi bạn giao hàng.
- Trang web của InstallAnywhere
InstallAnywhere là gói thương mại / doanh nghiệp tạo trình cài đặt cho các chương trình dựa trên Java. Nó có thể có khả năng tạo tập tin .exe.
Thay thế cho các tệp .exe, bạn có thể tạo tệp JAR tự động chạy khi nhấp đúp, bằng cách thêm một điểm nhập vào tệp kê khai JAR .
Một nguồn thông tin tuyệt vời về chủ đề này là bài viết của Excelsior " Chuyển đổi Java sang EXE - Tại sao, Khi nào, Khi nào và Như thế nào ".
Xem thêm bài viết đồng hành " Công cụ chuyển đổi JAR sang EXE tốt nhất, miễn phí và thương mại ".
Launch4j là một công cụ đa nền tảng để gói các ứng dụng Java được phân phối dưới dạng các tệp trong các tệp thực thi gốc Windows nhẹ. Tệp thực thi có thể được cấu hình để tìm kiếm một phiên bản JRE nhất định hoặc sử dụng một phiên bản đi kèm và có thể đặt các tùy chọn thời gian chạy, như kích thước heap ban đầu / tối đa. Trình bao bọc cũng cung cấp trải nghiệm người dùng tốt hơn thông qua biểu tượng ứng dụng, màn hình giật gân trước JRE gốc, tên quy trình tùy chỉnh và trang tải xuống Java trong trường hợp không thể tìm thấy JRE thích hợp.
- Trang web của Launch4j
CẬP NHẬT: GCJ đã chết. Nó đã chính thức bị xóa khỏi dự án GCC vào năm 2016. Ngay cả trước đó, nó đã thực sự bị bỏ rơi trong bảy năm và trong mọi trường hợp, nó không bao giờ đủ hoàn thành để phục vụ như là một triển khai Java thay thế khả thi.
Đi tìm một trình biên dịch AOT Java khác.
GCJ: Trình biên dịch GNU cho Java có thể biên dịch mã nguồn Java thành mã máy gốc, bao gồm các tệp thực thi của Windows.
Mặc dù không phải mọi thứ trong Java đều được hỗ trợ theo GCJ, đặc biệt là các thành phần GUI (xem API Java nào được hỗ trợ? Câu hỏi hỗ trợ hoàn chỉnh như thế nào từ Câu hỏi thường gặp ). Tôi đã không sử dụng GCJ nhiều, nhưng từ thử nghiệm hạn chế tôi đã thực hiện với các ứng dụng bảng điều khiển, có vẻ ổn.
Một nhược điểm của việc sử dụng GCJ để tạo một tệp thực thi độc lập là kích thước của EXE kết quả có thể khá lớn. Một lần tôi đã biên dịch một ứng dụng bảng điều khiển tầm thường trong GCJ và kết quả là có thể thực thi được khoảng 1 MB. (Có thể có những cách xung quanh vấn đề này mà tôi không biết. Một tùy chọn khác sẽ là các chương trình nén thực thi.)
Về các trình cài đặt mã nguồn mở, Hệ thống cài đặt tập lệnh Nullsoft là một trình cài đặt có thể viết được. Nếu bạn tò mò, có những ví dụ do người dùng đóng góp về cách phát hiện sự hiện diện của JRE và tự động cài đặt nó nếu JRE được yêu cầu không được cài đặt. (Chỉ để cho bạn biết, tôi chưa sử dụng NSIS trước đây.)
Để biết thêm thông tin về việc sử dụng NSIS để cài đặt các ứng dụng Java, vui lòng xem câu trả lời của tôi cho câu hỏi " Cách tốt nhất để phân phối các ứng dụng Java là gì? "
Bạn có thể tạo một tệp bó với mã sau:
start javaw -jar JarFile.jar
và chuyển đổi .bat thành .exe bằng bất kỳ trình chuyển đổi .bat sang .exe nào.
Chúng tôi đang sử dụng Install4J để xây dựng trình cài đặt cho các môi trường windows hoặc unix.
Nó dễ dàng tùy chỉnh đến mức bạn muốn viết tập lệnh cho các hành động đặc biệt không thể thực hiện được với các hộp thoại tiêu chuẩn. Nhưng ngay cả khi chúng tôi thiết lập các dịch vụ windows với nó, chúng tôi chỉ sử dụng các thành phần tiêu chuẩn.
Tôi nghĩ Launch4J đến từ cùng một công ty (chỉ là trình khởi chạy - không có trình cài đặt).
Tái bút: thật đáng buồn là tôi không được trả tiền cho sự chứng thực này. Tôi chỉ thích công cụ đó.
Java Web Start mới nhất đã được cải tiến để cho phép hoạt động ngoại tuyến tốt cũng như cho phép "cài đặt cục bộ". Đó là giá trị nhìn vào.
EDIT 2018: Java Web Start không còn được đóng gói với JDK mới nhất. Thay vào đó, Oracle đang hướng tới mô hình "triển khai ứng dụng của bạn với mô hình JRE kèm theo".
Nếu bạn cần chuyển đổi toàn bộ ứng dụng của mình sang mã gốc, tức là EXE cộng với DLL, thì có ExcelsiorJET . Tôi thấy nó hoạt động tốt và cung cấp một giải pháp thay thế cho việc đóng gói JRE.
Tôi có thể nói launch4j là công cụ tốt nhất để chuyển đổi mã nguồn java (.java) thành tệp .exe Bạn thậm chí có thể gói một jre với nó để phân phối và exe thậm chí có thể được biểu tượng hóa. Mặc dù kích thước của ứng dụng tăng lên, nó đảm bảo rằng ứng dụng sẽ hoạt động hoàn hảo ngay cả khi người dùng không cài đặt jre. Nó cũng đảm bảo rằng bạn có thể cung cấp jre cụ thể cần thiết cho ứng dụng của bạn mà không cần người dùng phải cài đặt riêng. Nhưng thật không may, java mất tầm quan trọng của nó. Hỗ trợ đa nền tảng của nó hoàn toàn bị bỏ qua và ứng dụng cuối cùng chỉ được hỗ trợ cho windows. Nhưng đó không phải là vấn đề lớn, nếu bạn chỉ phục vụ cho người dùng windows.
Ngoài ra, bạn có thể sử dụng một số trình dịch java-to-c (ví dụ: JCGO ) và biên dịch các tệp C được tạo thành tệp nhị phân gốc (.exe) cho nền tảng đích.
Tôi có thể được tha thứ vì đã chống lại việc chuyển đổi chương trình java sang Ứng dụng .exe và tôi có lý do của tôi. cái chính là chương trình java có thể được biên dịch thành tệp jar từ Rất nhiều IDE. Khi chương trình ở định dạng .jar, nó có thể chạy trong Nhiều nền tảng trái ngược với .exe sẽ chỉ chạy trong Môi trường rất hạn chế. Tôi cho ý tưởng rằng các chương trình Java sẽ không được chuyển đổi sang exe trừ khi nó rất cần thiết. Người ta luôn có thể viết các tệp .bat chạy chương trình Java trong khi đó là tệp jar.
nếu thực sự cần thiết để chuyển đổi nó thành exe, trình chuyển đổi Jar2Exe âm thầm làm điều đó và người ta cũng có thể đính kèm các Thư viện được biên dịch cùng với Ứng dụng chính.