2010-02-16 40 views
13

Tôi đã tạo tệp JAR và tôi muốn chạy tệp đó trên ứng dụng khách. Tôi có một vài câu hỏi:Làm cách nào để chuyển đổi tệp JAR thành tệp EXE?

  1. Làm cách nào để chuyển đổi tệp JAR thành tệp EXE?
  2. Làm cách nào để mã hóa nội dung của tệp JAR? Tệp jar có thể được trích xuất với WinRAR và các lớp có thể được giải mã với bất kỳ trình giải mã Java nào.
  3. Tôi làm cách nào để tạo trình cài đặt? Khách hàng của tôi không có bất kỳ JVM nào và tôi không muốn gửi JDK hoặc JRE cùng, bởi vì họ có kích thước lớn.
+0

Nếu bạn chuyển đổi bình sang một exe (trên cửa sổ tôi giả sử?) Nó có thể sẽ kéo một nửa jre trong exe để đáp ứng phụ thuộc. – extraneon

+0

http://yuvadeveloper.blogspot.com/2009/03/convert-jar-files-to-exe.html –

Trả lời

13
  1. Xem liên kết này: Java to Exe. Nó cũng giải thích lý do hợp lệ là để làm điều này, và khi bạn không nên.

  2. Bạn thực sự không thể mã hóa các tệp nhị phân vì máy phải hiểu chúng. Điều đó nói rằng, một tập tin thực thi được tối ưu hóa là rất khó để dịch ngược, trong khi các tệp lớp đơn giản dễ dàng.

  3. Nếu bạn có một exe có trình cài đặt đủ.

8

JSmooth là một ứng dụng mà sẽ quấn Jar của bạn trong một exe

nó cũng cho phép bạn kiểm tra xem đúng phiên bản của JRE có sẵn trên hệ thống bạn đang triển khai để

http://jsmooth.sourceforge.net/

2

Đối với 1): Tôi đoán bạn không thể. Có thể có các công cụ ngoài kia, nhưng bạn không thể làm điều đó với các công cụ tiêu chuẩn được vận chuyển bằng JDK, vì nó sẽ phá hủy nền tảng độc lập. (Xem các câu trả lời khác cung cấp liên kết đến các công cụ của bên thứ 3)

Đối với 3): Sử dụng InnoSetup để tạo trình cài đặt. Bao gồm JRE trong thiết lập và để InnoSetup cài đặt nó khi đang di chuyển.

+0

Tôi thực sự không thể thấy nền tảng độc lập là một yêu cầu. Bạn thường nhắm mục tiêu đối tượng chứ không phải một nền tảng. Nếu họ đã chuẩn hóa trên môi trường, bạn có thể nhắm mục tiêu VÀ kiểm tra điều đó. – extraneon

+0

Tôi có nghĩa là một công cụ như vậy sẽ không được vận chuyển với JDK vì lý do độc lập nền tảng. JDK gửi các công cụ để xây dựng và đóng gói các ứng dụng cho bất kỳ nền tảng nào trên bất kỳ nền tảng nào. –

2

Bạn không thể ngăn chặn việc giải mã. Điều tốt nhất bạn có thể làm là làm cho nó khó khăn hơn hoặc tốn thời gian hơn để làm như vậy. Tuy nhiên, như một câu trả lời cho câu hỏi của bạn, tôi tin rằng bạn có thể sử dụng gcj để biên dịch Java thành EXE.

+2

+1 để chỉ ra sự vô ích của việc cố gắng ngăn chặn kỹ thuật đảo ngược. –

2

Có thể là Excelsior JET sẽ thỏa mãn nhu cầu của bạn.) IMHO sản phẩm rất trưởng thành.

1

1) Gần đây tôi đã thử chương trình jarToExe và thích nó. Một số tính năng:

  • phiên bản miễn phí cơ bản hoặc rất rẻ ($ 30) cho 'doanh nghiệp'
  • khả năng có cửa sổ nhiệm vụ quản lý danh sách tên của ứng dụng của bạn thay vì java mặc định.exe thêm
  • obfuscation
  • kiểm tra thời gian chạy mà java được cài đặt

2) Bạn có thể làm cho nó khó để đảo ngược kỹ sư sử dụng proguard hoặc obfuscator khác

3) nsis là rất mạnh mẽ, ngôn ngữ kịch bản miễn phí để tạo trình cài đặt windows. Tốt tài liệu trên trang wiki và hỗ trợ trên tràn ngăn xếp là tốt.

1

Launch4j làm việc cho tôi trong khi một số công cụ không hoạt động. Nó cũng có một hướng dẫn tốt here.

Hope trợ giúp này!

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