2012-08-26 30 views
9

Khi cố gắng xuất dự án dưới dạng tệp .jar, Eclipse sẽ khiếu nại rằng một số tệp không thể tìm thấy trên đường dẫn lớp:Xuất dự án Java dưới dạng tệp .jar sẽ khiếu nại rằng một số tệp .java không được tìm thấy

file class trên classpath không tìm thấy hoặc không thể truy cập cho: 'Proj/src/main/java/phân tích/đặc điểm kỹ thuật/VerifyVariableIsDefinedInsideTargetTerm.java'

Bây giờ, phần thú vị là những tập tin ẩn náu' t thực sự tồn tại trên đĩa cho lứa tuổi. Tôi đoán tôi phải theo cách nào đó buộc Eclipse phải làm mới cơ sở dữ liệu của nó. Tôi đã thử làm F5, và xây dựng đầy đủ nhưng có vẻ như không có kết quả. Tôi cũng đã thử quy trình được mô tả trên this blog post nhưng vấn đề vẫn còn.

+2

Câu hỏi này sẽ không được đóng lại. Nó rõ ràng không phải là địa phương cho một thời gian hoặc địa điểm. Bắt lỗi khi tạo một jar bằng cách sử dụng nhật thực là chính xác phạm vi đúng của một câu hỏi cho stackoverflow. Tôi không chỉ nhận được thông báo lỗi chính xác này. Câu trả lời đầu tiên là giải pháp chính xác. – willkil

+1

Tôi đã được Google và dường như có rất nhiều người khác gặp sự cố này. Tôi đã có thể khắc phục nó trên môi trường của tôi và tôi muốn chia sẻ giải pháp của tôi với bạn nhưng câu hỏi đã bị đóng! Trong trường hợp của tôi, các tệp .class của tôi không được tạo ra và do đó khi tôi cố gắng tạo tệp jar thì nó sẽ cho tôi lỗi ở trên. Vì vậy, đây là những gì tôi đã làm Trong Eclipse/STS, bỏ kiểm tra Tự động xây dựng và sau đó nhấp vào dự án xây dựng sạch (chọn bạn dự án cụ thể). –

+1

@ user717630: bỏ phiếu để mở lại, nếu bạn có thể. –

Trả lời

12

Err .. Tôi thực sự vấp vào lý do cho vấn đề một vài khoảnh khắc trước ..

Tất cả các tập tin đã được nâng cao vấn đề đã thực sự tồn tại trên dự án, nhưng đã nhận xét ra (và do đó, tôi đã không không thấy chúng trong trình thám hiểm gói mà tôi thường sử dụng).

Sau khi xóa chúng, mọi thứ đều ổn. Tôi vẫn không hiểu tại sao họ sẽ tăng sai sót trong quá trình tạo JAR, mặc dù ..

EDIT: Dưới đây là một ví dụ về một lớp nhận xét ra:

package a.b.c 

//import java.io.Closeable; 

//public class Example implements Closeable { 
// public void close() throws IOException { 
//  System.out.println("closed"); 
// } 
//} 

Bởi vì cả lớp là đã nhận xét, không có lớp Example.class nào được tạo. Trong khi nếu lớp học được nhận xét như sau:

package a.b.c 

//import java.io.Closeable; 

public class Example 
// implements Closeable 
{ 
// public void close() throws IOException { 
//  System.out.println("closed"); 
// } 
} 

thì Example.class được tạo, mặc dù trống.

Đây có thể là lỗi trong nhật thực. Nếu bạn xuất khẩu kịch bản xây dựng kiến ​​từ nhật thực và sử dụng nó, nó tạo ra bình chỉ tốt.

+0

Vấn đề rất lạ, nhưng câu trả lời của bạn đã được phát hiện; Tôi đã rút ra một phần của ứng dụng của tôi để sử dụng như một mô-đun độc lập [chủ yếu], nhưng để lại các lớp học ban đầu (es) tại chỗ, nhưng hoàn toàn nhận xét ra. Không có tham chiếu đến lớp gốc, nhưng tôi vẫn chưa chuẩn bị để loại bỏ nó. – cabbagery

0

Có lẽ vấn đề thực sự là không phải tất cả các tệp lớp của bạn đều ở cùng một nơi ... đề xuất của tôi là di chuyển tất cả tệp .java của bạn vào cùng một thư mục, biên dịch lại để tạo tệp .class, đảm bảo tất cả .class tập tin sau đó trong cùng một thư mục ... sau đó kiểm tra trang web này: http://www.centerkey.com/mac/java/ nếu bạn cần bất kỳ trợ giúp trên thực sự tạo ra .jar.

Trang web cũng giả sử bạn đang sử dụng máy Mac ... nhưng bạn vẫn có thể sử dụng Dấu nhắc lệnh trên cửa sổ để làm cho nó hoạt động.

2

Sự cố này cũng xảy ra với tôi. Tuy nhiên, vấn đề với tôi là tôi đã có các vấn đề cấu hình JRE trong Eclipse.

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