2009-09-11 28 views

Trả lời

0

Tệp kê khai mặc định được tạo khi bạn tạo jar sử dụng jar cf jar-file inputs-files.

3

Tệp kê khai là tệp văn bản đơn giản, Sun's tutorial mô tả chi tiết nội dung của nó.

Tất cả bạn phải làm là tạo ra như một tập tin và update the JAR files với lệnh này:

jar cfm <jar-file> <manifest-addition> 
0

file Manifest là các tập tin văn bản. Và vì tệp JAR thực sự là tệp ZIP, bạn cũng có thể thêm tệp kê khai bằng cách sử dụng công cụ như 7-zip. Điều này không làm việc cho các JAR đã ký, tất nhiên.

6

Eclipse cung cấp các tùy chọn để tạo tệp kê khai cho Jar, lưu tệp kê khai đã tạo đó vào dự án hoặc sử dụng tệp được chỉ định cho tệp kê khai.

Tôi có Eclipse 3.4.2 và nó trên màn hình thứ tư trong quá trình này:

Kích chuột phải vào Project -> Export -> tập tin Java/JAR, Next, JAR Tệp Đặc điểm kỹ thuật, Tiếp theo, chọn JAR bao bì, Tiếp theo, Đặc tả Tệp kê khai JAR.

Mặc định là chỉ tạo tệp kê khai mặc định cho JAR và không lưu tệp đã tạo trở lại dự án, vì vậy nếu bạn mở tệp JAR, tệp sẽ có tệp kê khai, nhưng nó sẽ có thứ gì đó như:

Manifest-Version: 1.0 

trong đó.

Nếu bạn muốn thay đổi các JAR hiện tại của mình mà không cần xây dựng lại chúng, cách dễ nhất có thể là chỉ cần làm như đã đề xuất và mở chúng bằng công cụ Zip và chỉnh sửa /META-INF/MANIFEST.MF hiện có và lưu nó trở lại vào JAR.

+0

Tôi đã sử dụng phương pháp của Eclipse ngày hôm nay, nhưng Tệp kê khai chỉ là một dòng và không chỉ định vị trí của lớp Chính của tôi. Không thể tìm ra cách để Eclipse làm điều đó, vì vậy tôi đã tạo tệp kê khai của riêng mình và chọn nó trong khi xuất trong Dự án Eclipse của tôi. –

3

Với Ant, bạn có thể sử dụng jar nhiệm vụ. Nó có một tùy chọn manifest để chỉ định tất cả các thuộc tính mà bạn cần bao gồm. Một cái gì đó như thế này:

<target name="create-my-jar"> 
    <jar jarfile="foo.jar" basedir="bin/classes">  
     <manifest> 
     <attribute name="Class-Path" value="xxx"/> 
     <attribute name="Ant-Version" value="${ant.version}"/> 
     <attribute name="Created-By" value="JDK ${java.version} (${java.vendor})"/> 
     <attribute name='Specification-Title' value='xxx' /> 
     <attribute name='Specification-Version' value='xxx' /> 
     <attribute name='Specification-Vendor' value='xxx' /> 
     <attribute name='Implementation-Title' value='xxx' /> 
     <attribute name='Implementation-Version' value='xxx' /> 
     <attribute name='Implementation-Vendor' value='xxx' /> 
     <attribute name='Implementation-Vendor-Id' value='xxx' /> 
     <attribute name='Implementation-Vendor-URL' value='xxx' /> 
     <attribute name="Built-By" value="${user.name}"/> 
     <attribute name='Build-Date' value='xxx'/> 
     <attribute name='Build-Time' value='xxx'/>    
     </manifest> 
     </jar> 
    </target> 
4

Tôi vừa gặp sự cố này hôm nay.

Vâng, Eclipse sẽ tạo tệp kê khai cho bạn, nhưng đó thực sự là một trò đùa.

Chỉ bao gồm dòng Manifest-Version: 1.0. Tôi đã không tìm ra cách để làm cho nó thêm lớp chính của tôi, vì vậy tôi tạo ra tập tin MANIFEST.MF của riêng tôi, thêm nó vào thư mục chính của dự án của tôi (không phải src và không lib). Sau đó, khi tôi vào Export> JAR File, nhấn Next tất cả các cách để kết thúc (không nhấn Finish quá sớm) và nhấp vào tùy chọn để chọn manifest từ dự án. Chọn tệp kê khai bạn vừa thêm vào dự án của mình. Đảm bảo Tệp kê khai có đường dẫn đến lớp Chính của bạn (ví dụ: com.company, v.v.).Ví dụ đây là làm thế nào một tập tin Manifest cơ bản sẽ như thế nào:

Manifest-Version: 1.0 
Created-By: 1.6.0 (Sun Microsystems Inc.) 
Main-Class: MyPackage.MyClass 

Tôi cố gắng @ phương pháp của Michael nhưng tôi đã kết thúc với không có tập tin lớp học còn lại trong JAR của tôi và chỉ file Manifest .. oh well. Phương pháp trên của tôi hoạt động tốt.

0

Ngoài ra, bạn có thể xem tài liệu này, điều này đã giúp tôi giải quyết vấn đề bằng cách sử dụng trình hướng dẫn Eclipse.

See Eclipse Documentation

0

Sử dụng Eclipse, trên JAR Specification Manifest trang ở phía dưới, có một hộp văn bản mà bạn có thể duyệt các chính lớp học của bạn. Duyệt qua Chính lớp học của bạn và nhấp vào Hoàn tất. Điều này tạo ra tệp kê khai VỚI thông tin lớp chính cho phép tệp jar được thực thi. -Dev Trên

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