2009-03-02 72 views
19

Tôi đang sử dụng NetBeans 6.5 và vì một lý do nào đó, nó sẽ không tạo ra jar thực thi "ngoài hộp".Sản xuất bình thực thi trong NetBeans

Tôi đặt dự án của mình thành dự án chính, được xác định lớp chính trong trình đơn thuộc tính của dự án "chạy" và nó hoạt động hoàn hảo khi tôi nhấn F6 để chạy nó.

Tôi đã xem tệp kê khai và nó thực sự không xác định lớp chính ở đó và cũng bỏ qua các phụ thuộc thư viện.



Tôi có thiếu gì đó không? Có cách nào (ngoài việc thay đổi tệp kê khai theo cách thủ công) để tạo tệp jar thực thi không?

EDIT: yes, tôi đã cố gắng làm sạch và xây dựng lại và nó được sản xuất jar trong thư mục dist, vẫn với cùng manifest.mf

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 10.0-b23 (Sun Microsystems Inc.) 
+0

Tỷ lệ cược. Khá chắc chắn NetBeans làm cho các lọ thực thi theo mặc định. Khi bạn chạy một dự án nó thậm chí nói như vậy trong đầu ra giao diện điều khiển cho tôi. Không có NetBeans tại nơi làm việc vì vậy tôi thực sự không thể kiểm tra lại: ( – willcodejavaforfood

+2

Tệp manifest.mf trong thư mục dự án không được sao chép đúng nguyên văn vào tệp .jar. Thuộc tính lớp chính và bất kỳ đường dẫn thư viện nào được thêm khi bạn "dọn dẹp và –

+0

Vâng, nó làm cho các lọ thực thi theo mặc định Hãy thử làm sạch và xây dựng lại –

Trả lời

0

Strange trên thực tế, nó nên làm điều đó ra khỏi hộp bao gồm classpath.

Bạn đã nâng cấp từ phiên bản trước chưa? Khi nâng cấp, NB sẽ nâng cấp các tệp dự án nhưng đôi khi việc di chuyển này không được thực hiện tốt và loại kịch bản này bật lên. Chỉ cần đóng dự án, đổi tên thư mục nbproject thành nbproject_old và thực hiện dự án mới -> Java project với các nguồn hiện có. Đặt lại lớp chính và thêm phụ thuộc và thử lại.

0

Một cách tiếp cận khác hoàn toàn là phát triển, chạy thử nghiệm đơn vị, v.v. trong NetBeans nhưng sau đó sử dụng tập lệnh maven hoặc ant để tạo bản dựng "thực" của bạn. Dường như các loại công cụ xây dựng này cung cấp cho bạn nhiều quyền kiểm soát hơn đối với cách mọi thứ được xây dựng và nó cũng cho phép bạn tự động hóa các bản dựng.

Đối với maven, bạn có thể thêm các mục vào manifest một cách dễ dàng bằng cách sử dụng jar Plugin maven:

http://maven.apache.org/plugins/maven-jar-plugin/

0

Chuyển đến quan điểm Files. Tạo tệp kê khai.mf trong thư mục gốc.

/project_folder 
    build.xml 
    manifest.mf(edit here) 
    /dist 
    /src 
    /test 
    /build 
+1

Xin lỗi, nhưng tôi đã thử và NetBeans ghi đè những gì tôi chỉ định trong tệp kê khai – Dani

1

Nếu bạn làm sạch và xây dựng dự án, bạn nên tạo bình trong thư mục "dist".

Nó sẽ tạo tệp kê khai ở cấp cao nhất trong thư mục dự án của bạn.

1

Tôi thực sự đã xem trang này sau khi chạy vào cùng một vấn đề, tôi đã chỉnh sửa tệp manifest.mf nhưng các thay đổi không hiển thị trong tệp MANIFEST.MF jar. Tôi đã tìm thấy vấn đề mà tôi đang gặp phải và nghĩ rằng tôi sẽ chuyển thông tin chỉ trong trường hợp nó có liên quan.

Điều tôi đã làm sai là tôi không có dự án mà tôi đang làm việc để làm dự án chính, vì vậy trong khi tôi đang chỉnh sửa tệp kê khai chính xác, tôi đã biên soạn dự án sai.

Vì vậy, tôi cho rằng ngắn của câu chuyện bạn đã kiểm tra và xem liệu bạn có dự án chính xác được chọn cho tệp manifest.mf bạn đang chỉnh sửa không?

1

Có thể bạn đã tạo Dự án Java với các nguồn hiện tại thay vì Ứng dụng Java?

Tôi đã gặp sự cố tương tự và tạo ứng dụng Java mới và sau đó sao chép thủ công các tệp src đã giải quyết được sự cố - mọi thứ đã hoạt động "ngoài hộp".

1

Tôi đã có kinh nghiệm, rằng quá trình xây dựng là khác nhau, tùy thuộc vào loại dự án.

Tôi cho rằng, bạn đã tạo dự án "Thư viện lớp Java".

Vì vậy, chỉ cần tạo dự án "Ứng dụng Java", sau đó hợp nhất tất cả các lớp với nó.

Sau đó, Netbeans sẽ không ghi đè, nhưng tăng cường số "manifest.mf" vào JAR.

Tất nhiên, đó là lỗi Netbeans ngu ngốc. Tất nhiên có thể thêm các lớp chính sau đó.

EDIT: Vui lòng xem câu trả lời khác của tôi. Nó dễ dàng hơn.

0

Một giải pháp tốt hơn:

Sửa nbproject/project.properties và thêm mục:

manifest.file=manifest.mf 

manifest.mf phải ở trong thư mục gốc của dự án và chỉ chứa:

Manifest-Version: 1.0 
X-COMMENT: Main-Class will be added automatically by build 

trình . Thử nghiệm.

5

Hãy thử điều này:

  1. Nhấp chuột phải dự án của bạn vào "dự án" bảng điều khiển, chọn "Properties"

  2. Bấm vào "Run" trong cửa sổ mới.

  3. Chỉnh sửa trường "Lớp chính:" (nhấp vào Duyệt qua).

Bằng cách này bạn sẽ chọn lớp chính là điểm nhập vào ứng dụng của bạn và Tệp kê khai sẽ được tạo chính xác.

4

Rất đơn giản, The .jar và.file jad đang có trong thư mục dist

Tôi cũng đang tìm kiếm câu trả lời và có một này từ http://forums.netbeans.org/ptopic3465.html

Giải Quyết :)

+0

+1 Đây phải là câu trả lời. Giải quyết vấn đề của tôi. –

6

Nếu bạn đang sử dụng các plugin lắp ráp maven và muốn xây dựng một jar thực thi với phụ thuộc, bạn cần phải thêm phần này để cấu hình của phần maven-lắp ráp-plugin trong pom.xml của bạn:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <!-- ... --> 
    <archive> 
     <manifest> 
     <mainClass>your.app.SampleClass</mainClass> 
     </manifest> 
    </archive> 
    </configuration> 
</plugin> 

Nguồn: Maven Assembly Plugin Usage

7

Tôi vừa gặp vấn đề tương tự trong NetBeans 7.2.1 với dự án Ứng dụng Java Maven. Sửa đổi các tập tin pom.xml để bao gồm các maven assembly plugin với một dấu ngắt câu trả lời myrho của (cần phải tham khảo các mô tả được xác định trước "jar-với-phụ thuộc"):

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>your.app.MainClass</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Một phương pháp thay thế là để xây dựng một dự án Java Application trong NetBeans không sử dụng Maven. Chọn File -> Project Properties -> Build -> Packaging và đánh dấu vào hộp kiểm "Copy Dependent Libraries".

0

Trong 7.3 chỉ kích hoạt tính năng Thuộc tính/Xây dựng/Gói/Sao chép thư viện phụ thuộc và lớp chính (tùy thuộc vào mục tiêu đã chọn) sẽ được thêm vào tệp kê khai khi xây dựng.

0

Để tự buộc gói tạo với NetBeans IDE 8.0.2 ...

  1. Trong navigator dự án, mở rộng dự án < bạn> và click chuột phải Project Files/pom.xml
  2. Bấm Chạy Maven/Mục tiêu
  3. Nhập "gói" trong trường Mục tiêu
  4. Bấm OK

Cửa sổ đầu ra sau đó sẽ hiển thị (trên Mac) ...

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar 
0

Ok với neatbean bạn có thể làm các bước sau đây: 1. Nhấp chuột phải tên dự án chọn mục Set Cấu hình và Chọn Customize
2. Chọn Run và thông báo Main Lớp
3. Chọn lông mày e và đặt lớp nếu bạn muốn chạy. Sau khi bạn bấm ok.
4. Hoàn tất.

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