2009-04-29 65 views
44

Tôi đã lập trình một chương trình Java trong JCreator, mọi thứ đã xong, nhưng tôi muốn tạo một tập tin thực thi từ nó, tức là tôi không muốn chạy chương trình bằng cách tải các lớp java và biên dịch rồi thực thi, nhưng thay vào đó dưới dạng tệp thực thi độc lập.Làm cách nào để tạo chương trình Java thực thi?

Cách nhanh nhất để làm điều này là gì?

+4

Có rất nhiều bài đăng về việc này trên luồng xuất. http://stackoverflow.com/questions/80105/whats-the-best-way-to-distribute-java-applications –

Trả lời

1

Viết tập lệnh và làm cho tập lệnh có thể thực thi được. Tập lệnh sẽ trông giống như những gì bạn thường sử dụng ở dòng lệnh:

java YourClass 

Giả định bạn đã biên soạn tệp .java và java có thể tìm thấy tệp .class của bạn. Nếu java không thể tìm thấy tệp .class của bạn, bạn có thể muốn xem xét bằng cách sử dụng tùy chọn -classpath hoặc thiết lập biến môi trường CLASSPATH của bạn.

5

Trên dòng lệnh, điều hướng đến thư mục gốc của các tệp Java mà bạn muốn thực thi.

Sử dụng lệnh này:

jar -cvf [name of jar file] [name of directory with Java files] 

này sẽ tạo ra một thư mục có tên META-INF trong kho lưu trữ jar. Trong này META-INF có một tập tin gọi là MANIFEST.MF, mở tập tin này trong một trình soạn thảo văn bản và thêm dòng sau:

Main-Class: [fully qualified name of your main class] 

sau đó sử dụng lệnh này:

java -jar [name of jar file] 

và chương trình của bạn sẽ chạy :)

2

Bạn có thể sử dụng GCJ để compile chương trình Java của mình thành mã gốc.
Đồng thời, họ thậm chí đã biên soạn Eclipse thành một native version.

10

Tôi không hoàn toàn chắc chắn ý bạn là gì.

Nhưng tôi cho rằng bạn có nghĩa là 1 trong 2 điều.

  • Bạn muốn tạo một file .jar thực thi

Eclipse có thể làm được điều này thực sự dễ dàng File -> Export và tạo ra một jar và chọn thích hợp Main-Class và nó sẽ tạo ra. cho bạn. Trong các cửa sổ, bạn có thể phải liên kết .jar với thời gian chạy java. aka Giữ chuyển xuống, Right Click "mở với" duyệt đến JVM của bạn và liên kết nó với javaw.exe

  • tạo ra một tập tin .exe thực tế thì bạn cần phải sử dụng một thư viện mở rộng giống như

http://jsmooth.sourceforge.net/ hoặc http://launch4j.sourceforge.net/ sẽ tạo một tệp gốc .exe với biểu tượng đẹp về cơ bản sẽ khởi động ứng dụng của bạn. Họ thậm chí còn tìm ra nếu khách hàng của bạn chưa cài đặt JVM và nhắc bạn nhận được một.

0

Như đã đề xuất trước đó, bạn có thể xem launch4j để tạo tệp thực thi cho tệp JAR của bạn.Ngoài ra, có một cái gì đó gọi là "JExePack" có thể đặt một wrapper .exe xung quanh tập tin jar của bạn để bạn có thể phân phối lại nó (lưu ý: khách hàng sẽ anyways cần một JRE để chạy chương trình trên máy của mình) exes tạo ra với GCJ sẽ không có sự phụ thuộc này nhưng quá trình này có liên quan nhiều hơn một chút.

3

Hãy xem WinRun4J. Nó chỉ là các cửa sổ nhưng đó là vì unix có các tập lệnh thực thi trông giống như các thùng. Bạn cũng có thể dễ dàng sửa đổi WinRun4J để biên dịch trên Unix.

Nó yêu cầu tệp cấu hình, nhưng lại biên dịch lại với các tùy chọn mã hóa cứng và nó hoạt động giống như một exe cấu hình.

55

Bạn có thể sử dụng jar tool đi kèm với SDK và tạo phiên bản chương trình có thể thực thi.

Đây là cách thực hiện.

Tôi đang đăng kết quả từ lời nhắc lệnh của mình vì nó dễ dàng hơn, nhưng điều tương tự cũng nên áp dụng khi sử dụng JCreator.

Đầu tiên tạo ra chương trình của bạn:

$cat HelloWorldSwing.java 
    package start; 

    import javax.swing.*; 

    public class HelloWorldSwing { 
     public static void main(String[] args) { 
      //Create and set up the window. 
      JFrame frame = new JFrame("HelloWorldSwing"); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      JLabel label = new JLabel("Hello World"); 
      frame.add(label); 

      //Display the window. 
      frame.pack(); 
      frame.setVisible(true); 
     } 
    } 
    class Dummy { 
     // just to have another thing to pack in the jar 
    } 

Rất đơn giản, chỉ hiển thị một cửa sổ với "Hello World"

Sau đó biên dịch nó:

$javac -d . HelloWorldSwing.java 

Hai file được tạo ra bên trong " bắt đầu "thư mục Dummy.classHelloWorldSwing.class.

$ls start/ 
Dummy.class  HelloWorldSwing.class 

Bước tiếp theo, tạo tệp jar. Mỗi tệp jar có một tệp kê khai, trong đó các thuộc tính liên quan đến tệp thi hành được.

Đây là nội dung của tệp kê khai của tôi.

$cat manifest.mf 
Main-class: start.HelloWorldSwing 

Chỉ cần mô tả những gì lớp chính là (một với public static method main void)

Khi manifest đã sẵn sàng, jar thực thi được gọi.

Có nhiều tùy chọn, ở đây tôi đang sử dụng -c -m -f (-c để tạo jar, -m để chỉ định tệp kê khai, -f = tệp nên được đặt tên ..) và thư mục tôi muốn bình.

$jar -cmf manifest.mf hello.jar start 

Điều này tạo ra file .jar trên hệ thống

enter image description here

Bạn nhấp chuột có thể sau đó chỉ cần kích đúp vào tập tin đó và nó sẽ chạy như mong đợi.

enter image description here

Để tạo file .jar trong JCreator bạn chỉ cần sử dụng menu "Tools", tạo jar, nhưng tôi không chắc chắn như thế nào biểu hiện đi ở đó.

Đây là video tôi đã tìm thấy về: Create a Jar File in Jcreator.

Tôi nghĩ bạn có thể tiếp tục với các liên kết khác được đăng trong chủ đề này khi bạn đã quen thuộc với phương pháp ".jar" này.

Bạn cũng có thể sử dụng jnlp (Giao thức trình khởi chạy mạng Java).

+0

@IlmariKaronen Đã cập nhật! – OscarRyz

1

Java Web Start là một công nghệ tốt để cài đặt các máy khách giàu Java ra khỏi internet trực tiếp tới máy tính để bàn của người dùng cuối (cho dù hệ điều hành là Windows, Mac hay * nix). Nó hoàn chỉnh với tích hợp máy tính để bàn và cập nhật tự động, trong số nhiều tính năng khác.

Để biết thêm thông tin về JWS, hãy xem JWS info page.

+0

FYI, * Java Web Start * & JNLP không được chấp nhận trong Java 9 và dự kiến ​​sẽ bị xóa. Xem [danh sách phản đối] này (http://www.oracle.com/technetwork/java/javase/9-deprecated-features-3745636.html) của Oracle, đề cập đến 'JDK-8184998 (không công khai)': ** * Công nghệ triển khai Java không còn được dùng nữa và sẽ bị xóa trong bản phát hành tương lai ** Java Applet và chức năng WebStart, bao gồm API Applet, Trình cắm Java, Trình xem Java Applet, JNLP và Java Web Start bao gồm công cụ javaws đều bị phản đối trong JDK 9 và sẽ bị xóa trong bản phát hành trong tương lai. * –

3

Jexecutable có thể tạo exe Windows cho các chương trình Java. Nó nhúng các jars vào file exe và bạn có thể chạy nó như một chương trình Windows.

0

Nếu bạn đang sử dụng NetBeans, bạn chỉ cần nhấn f11 và dự án của bạn sẽ được xây dựng. Đường dẫn mặc định là projectfolder \ dist

10

Nếu bạn đang sử dụng Eclipse, bạn có thể thử 7 bước dưới đây để lấy tệp .exe cho Windows.

step1step2step3

Bây giờ bạn có một tập tin JAR. Sử dụng đường dẫn java -jar/jarname.jar để thực thi.

enter image description here


Nếu bạn muốn chuyển đổi này để .exe, bạn có thể thử http://sourceforge.net/projects/launch4j/files/launch4j-3/

STEP5STEP6

STEP7: Đưa file .xml một cái tên thích hợp và bấm vào nút " Tiết kiệm". Tệp .xml là tiêu chuẩn, đừng lo lắng về nó. Tệp thực thi của bạn bây giờ sẽ được tạo!

+0

Linux và MacOS xử lý các tệp thi hành như thế nào? Sẽ nhấp đúp vào tập tin jar làm việc trên bất kỳ hệ điều hành? –

+0

@androiddeveloper Khi môi trường java tồn tại trong một hệ điều hành, nó sẽ hoạt động như nhau. – reporter

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