2011-06-08 49 views
20

Tôi đã thử cài đặt lại netbeans, tôi đã thử cài đặt lại java. Tôi không chắc chắn những gì đang xảy ra nhưng tôi nhận được ngoại lệ này ngẫu nhiên từ mọi lớp cho đến khi tôi khởi động lại netbeans. Bất kỳ ai có vấn đề tương tự?java.lang.NoClassDefFoundError từ mọi lớp học mỗi ngày

chạy:

Exception in thread "main" java.lang.NoClassDefFoundError: com/company/utilities/formatters/DateFinder 
    at com.protocase.db.DatabaseAdapter.<init>(DatabaseAdapter.java:44) 
    at packagingqueries.PackagingQueries.getBatchIDsForOperation(PackagingQueries.java:42) 
    at packagingqueries.PackagingQueries.main(PackagingQueries.java:20) 
Caused by: java.lang.ClassNotFoundException: com.protocase.utilities.formatters.DateFinder 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
+0

Bạn đã thử làm một xây dựng sạch? Nó giúp đôi khi trong Eclipse. – Reddy

+2

Vâng, tôi đã thử nó, tiếc là nó không phải là đi. – davidahines

Trả lời

32

Đôi khi, thư mục bộ nhớ cache cục bộ của NetBeans bị hỏng (do ứng dụng bị lỗi trước đó hoặc do một số khác/không xác định đã xảy ra). NetBeans bắt đầu cư xử kỳ lạ. Cài đặt lại không có tác dụng, vì thư mục bộ nhớ cache cục bộ không phải lúc nào cũng bị xóa.

Nếu bạn chắc chắn 100% ứng dụng của bạn không có một vấn đề đường dẫn:

  1. Đóng NetBeans
  2. Nếu bạn đang trên Windows đi đến c: \ Users \ youruserid \ .netbeans \ 7.0 (khác tìm thư mục tương ứng trên hệ thống của bạn)
  3. Xóa nội dung hoàn toàn
  4. Restart NetBeans

NetBeans sẽ độn ăn nội dung của thư mục này. Điều này có thể giải quyết vấn đề của bạn. Nếu không, thì vấn đề của bạn là trong cấu hình của ứng dụng của bạn hoặc trong một thư viện bị hỏng chắc chắn.

Nếu vị trí lưu trữ các tệp này hết dung lượng để viết thì vấn đề này có thể phát sinh. Như thường lệ, cần phải tạo không gian ...

+1

Nếu bạn đang sử dụng Mac OS, thư mục là:/Users/yourUserId/Library/Caches/NetBeans/phiên bản/chỉ số Thay thếUserId và phiên bản của netbeans của bạn. – Enkk

+7

Dành cho NetBeans 8.0 trên Windows 8, đường dẫn là 'C: \ Users \ [Tên người dùng] \ AppData \ Local \ NetBeans \ Cache \ 8.0' Điều này giải quyết được vấn đề của tôi mà vẫn tồn tại sau khi đổi tên dự án, thiết lập lại, cấu hình lại và tạo lại. – Sheepy

+1

Đối với người dùng windows để sao chép và dán đơn giản: '% appdata% \ .. \ local \ NetBeans \ Cache' – sibbl

5

này thường là một vấn đề classpath. Hãy thử đặt lại CLASSPATH và/hoặc đảm bảo tất cả các JAR của bên thứ ba thực sự có mặt tại các vị trí chính xác. Trong một số trường hợp hiếm hoi, bạn sẽ gặp phải sự cố này khi JVM gặp sự cố khi tải bình của bên thứ ba do phiên bản không tương thích. Bạn có thể đăng các cài đặt CLASSPATH của mình không?

+0

Vấn đề CLASSPATH, eh. Tôi sẽ cung cấp cho cô ấy một whirl. – davidahines

+0

Làm cách nào để đăng các cài đặt classpath của tôi? – davidahines

+1

Xin chào, bạn có thể chỉnh sửa bài đăng của mình và kết xuất các cài đặt ở đó. – Perception

1

Tôi đang chạy Netbeans 6.9.1 và thỉnh thoảng nó chỉ bị nhầm lẫn và bắt đầu nói rằng nó không thể tìm thấy một số tham chiếu. Tôi chạy nó trên hai cửa sổ máy khác nhau với cấu hình khác nhau và nó xảy ra trên cả hai. Hầu hết thời gian nó liên quan đến một tập tin .jar. Giải pháp duy nhất tôi có thể đưa ra là khởi động lại Netbeans.

+0

Khởi động lại Netbeans không thực sự là một giải pháp, nó giống như một cách giải quyết khác. – davidahines

+0

Giải pháp là một phương pháp giải quyết vấn đề. Giải pháp thay thế là một giải pháp để lại một số vấn đề kém quan trọng chưa được giải quyết. –

3

@dah: điều tôi hiểu là mã của bạn được triển khai trong JDK được định cấu hình netbeans dưới dạng ứng dụng java đơn giản. Khi bạn chạy ứng dụng của mình, bạn gặp phải sự cố NoClassDefFoundError? Có hiểu biết đúng không. NoClassDefFoundError có thể do bất kỳ vấn đề nào sau đây: - i) lớp học thực sự không có mặt. sol: Giải pháp rõ ràng. ii) Lớp hiện diện nhưng vẫn còn lỗi. Sol: kiểm tra xem nó có trong classpath không. classloader visibilty là quan trọng ở đây. iii) Lớp có mặt và hiện diện trong classpath nhưng vẫn còn lỗi. Sol: Nếu bạn có một lớp trong một cái lọ, có thể là do jar đã tạo ra bằng cách sử dụng phiên bản java khác với những gì bạn đang sử dụng. Vì vậy, bạn cần phải biên dịch lại jar và sau đó thay thế jar mới. kiểm tra điều này: - http://code.google.com/p/versioncheck/

+0

Bằng cách triển khai, bạn có nghĩa là tôi đang chạy nó từ thư mục dist ở một vị trí khác không? Đây là trong quá trình gỡ lỗi chủ yếu. – davidahines

3

Tôi đã gặp vấn đề tương tự Lỗi không tìm thấy lớp và sau khi đọc một số nhận xét cho thấy netbeans sẽ mất tham chiếu đến tệp jar được thêm vào trong thư viện. Xóa các lọ và thêm chúng vào thư viện sẽ tạo lại tham chiếu.

23

Bạn có thể đang chạy dự án của mình bằng tùy chọn "Biên dịch khi lưu". Vui lòng bỏ chọn tùy chọn này.

Tôi biết tùy chọn này rất hữu ích nhưng "Biên dịch khi lưu" gây ra các sự cố như vậy.

+1

Bạn Sir ... là một người tiết kiệm cuộc sống !! Đã làm việc trên một dự án tương đối rộng lớn (khoảng 80 cộng với tập tin mã.) Và tất cả của một Netbeans đột ngột bắt đầu phàn nàn rằng nó đã không thể xác định vị trí một lớp hệ thống con lõi! Cố gắng hoàn toàn tải lại dự án và các phụ thuộc của nó, nhiều lần khởi động lại và sắp sửa cài đặt lại Netbeans khi tôi thấy bài đăng của bạn; chỉ đơn giản là vô hiệu hóa "Biên dịch trên Lưu" đã khắc phục được sự cố. Cảm ơn nhiều!! –

+0

Tính năng này cũng hoạt động trên 8.1 (Mac OSX). Làm sạch bộ nhớ cache không hữu ích. Tôi tự hỏi nếu điều này liên quan đến https://netbeans.org/bugzilla/show_bug.cgi?id=194263 quá – Bram

+0

Sẽ không bao giờ nghĩ về điều đó! Cảm ơn!!! – MSX

2

Tôi gặp phải sự cố tương tự đã tạo ra NoClassDefFoundError do ClassNotFoundException gây ra.

Trong trường hợp của tôi, tôi đã sao chép một sự phụ thuộc vào pom.xml của tôi trong đó có dòng

<scope>provided</scope> 

Dường như NetBeans/maven nạp jar vào Netbeans cho sự phát triển và biên soạn, nhưng trái nó ra khỏi jar thực thi kể từ khi tôi nói nó được "cung cấp".

Khi tôi xóa dòng này khỏi số pom.xml lỗi của tôi đã biến mất.

2

Một cách rất đơn giản là sửa đổi mã của bạn một số bit có nghĩa là một số thay đổi nhỏ và sạch sẽ và làm lại xây dựng. có nghĩa là bất kỳ cách nào làm cho trình biên dịch của bạn buộc phải biên dịch lại mẫu chương trình của bạn Một lần nữa và cách đó nó sẽ được chạy.

Hãy thử điều đó sẽ hữu ích.

0

Tôi đã sử dụng giải pháp được đăng bởi JVerstry. Tôi làm việc cho tôi vào lúc:

phòng thu ubuntu với netbeans 8.0.2

vấn đề xuất hiện sau khi cài đặt plugin JAX-RPC để tạo ra một khách hàng dịch vụ web.

hy vọng điều này sẽ giúp bất kỳ ai khác.

2

Đối với tôi, vấn đề này xảy ra ngay sau khi NetBeans nói "bộ nhớ thấp". Tôi đã thử các giải pháp khác, khởi động lại, khởi động lại, loại bỏ các thư mục khác nhau như trên, không có kết quả.

Vì lý do nào đó, nó đã hoạt động để xóa thư mục Lớp học khỏi/build và sau đó thực hiện Làm sạch/Xây dựng. Không biết tại sao điều đó làm việc, bởi vì tôi nghĩ rằng dir đã bị xóa trong "Clean" anyway ... có lẽ xóa nó nhầm NetBeans một cách xây dựng (?)

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