2011-08-15 26 views
49

Tôi có Launch4J trên máy tính của mình và đó là một chương trình tuyệt vời. Một trong những tính năng mà tôi quan tâm là khả năng gói một JRE trong tệp .EXE chung. Tuy nhiên, tôi không thể tìm thấy bất kỳ tài liệu nào mô tả cách thực hiện việc này.Làm thế nào để gói một JRE với Launch4j?

Làm cách nào để kết hợp JRE với EXE? Ngoài ra, tôi có thể sử dụng JRE gọn nhẹ, di động ở đâu? Các liên kết tải xuống trên Oracle dành cho các gói cài đặt.

+1

Launch4j cho phép bạn kết hợp một JRE ** với ** exe của bạn, cùng với nó. Bạn không thể sử dụng nó để nhúng JRE vào exe của bạn. – THelper

Trả lời

53

Sau một số nỗ lực tôi cuối cùng đã có được một workaround bó jre trong ứng dụng của tôi:

tôi gói ứng dụng của tôi như là một file zip có chứa các thư mục sau bên trong:

containerFolder 
|- jre 
     |-bin (in bin there is java.exe) 
     |-lib 
|- cfg (to save the user configuration, but it's not needed) 
|- bin (my application with the .exe and the .jar and all the other stuff) 

Trong tập tin xml của launch4j i định cấu hình jre như sau:

<jre> 
    <path>../jre</path> 
    <opt>-DgvSIG.confDir=../cfg</opt> 
</jre> 

Bí quyết ở đây là đường dẫn không phải là tệp java.exe. Đường dẫn đến jre tương ứng với vị trí của .exe và nó sẽ trỏ đến một thư mục trước tệp java.exe

Thư mục jre mà tôi đang sử dụng chỉ là một bản sao & dán từ thư mục jre được cài đặt trên một hệ thống cửa sổ.

+4

Điều đó đã giúp tôi rất nhiều! Các tài liệu không quá rõ ràng về điều này ... Hoạt động như một nét duyên dáng :-) –

+1

Bất kỳ liên kết nào đến hướng dẫn rất kỹ lưỡng? Tôi gặp một chút rắc rối khi hiểu điều này. –

+0

Xin chào đường dẫn này ../jre hoặc là đường dẫn hiện có trong thư mục C: //..java hoặc trình cài đặt Java JRE mới được tải xuống. –

-1

Có thể tìm thấy jre trong thư mục SDK của bạn. Có các liên kết trực tuyến là các trình cài đặt, nhưng một khi nó được cài đặt, JRE hiện nằm trên đĩa cục bộ của bạn. Mine nằm ở

${jdk folder}\jre 

Các phần bạn không cần từ JRE có thể được xóa thủ công nếu bạn thực sự muốn (Tôi không chắc chắn những gì có sẵn trực tuyến).

+0

Làm cách nào để gộp nó vào EXE? Tôi đang cố gắng để gói tất cả mọi thứ trong lọ để tôi sẽ không phải lo lắng nếu người dùng đã cài đặt Java. Tôi nhận thấy rằng chỉ cần tải xuống java có lẽ là ý tưởng hay nhất; tuy nhiên, tôi muốn thử nghiệm với tất cả các tùy chọn triển khai của mình. – CodeBunny

+1

@CodeBunny Điều này là không thể với Launch4j một mình, nhưng ai đó tìm thấy một giải pháp tốt đẹp: http://mark.koli.ch/bundle-java-the-jre-and-launch-a-java-app-with-7zip- sfx – Zero3

10

Cách duy nhất tôi có thể gộp JRE là sử dụng Launch4J và Trình biên dịch thiết lập Inno.

Đầu tiên, tạo thư mục 'jre6' (ví dụ) trong cùng thư mục với tệp xuất (.exe).

Sau đó, sao chép JRE từ hệ thống của bạn vào thư mục jre6 của bạn.

Sau đó, bạn mở Launch4J và đặt 'Đường dẫn JRE đi kèm' - chỉ cần nhập: jre6. Sau đó nhấp vào nút Xây dựng (hiển nhiên, sau khi bạn đã nhập tất cả các thông số khác - nhưng giá trị duy nhất bạn cần nhập trên tab 'JRE' chính là giá trị 'Đường dẫn JRE' được kết hợp.)

Tôi sẽ có hy vọng rằng để làm việc, nhưng nếu di chuyển .exe đến một vị trí mới (vì vậy nó không còn nằm cùng với thư mục jre6 của bạn nữa), bạn sẽ nhận được "Ứng dụng này được cấu hình để sử dụng Java Runtime Environment đi kèm. bị hỏng "lỗi khi bạn cố gắng chạy ứng dụng ...

Tôi đã chơi xung quanh với điều này cả ngày và không có cách nào tôi có thể nhận được Launch4J để bao gồm JRE trong tệp .exe. Thực sự nghèo trong quan điểm của tôi, như tài liệu của họ dường như không ám chỉ đến vấn đề này cả.

Vì vậy, những gì tôi đã làm để giải quyết là sử dụng Inno Setup Compiler. Ứng dụng này được sử dụng để bọc tệp .exe của bạn dưới dạng tệp Trình cài đặt Windows. Vì vậy, tôi đã thêm một cài đặt vào tập lệnh ISC sao chép JRE vào gói cài đặt. Dòng tôi đã thêm vào tập lệnh (trong phần [Tệp]) là:

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs 

... một chút giải pháp khác, nhưng nó đã thực hiện thủ thuật.

Lặp lại tất cả các bước trên và bạn nên được sắp xếp.

ĐÁP lấy từ here ..user1617737

0

Vấn đề tương tự như bạn giao phối. Không phải lo lắng. Tất cả của nó giải quyết với độ sâu tối đa để giải quyết giải pháp trong tương lai. Giải pháp cách bạn có thể gói JRE cho bình của bạn mà không cần người dùng phải cài đặt java hay không. Ứng dụng java của bạn sẽ chạy.

  1. Sao chép libbin thư mục từ thư mục JRE của bạn vào thư mục quận dự án của bạn

jar to exe conversion

  1. launch4j mở và nhập các thiết lập sau. enter image description here

Bí quyết là bạn cần cung cấp đường dẫn đầy đủ đến javaw.exe bao gồm.

Thưởng thức !!!!

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