2012-05-08 43 views
7

Thật lạ là tôi không gặp phải bất kỳ lỗi biên dịch nào nhưng trong khi chạy ứng dụng tôi nhận được lỗi NoClassDefFound cho các lớp Groovy.Eclipse không biên dịch các kịch bản Groovy vào các lớp java tại thời gian chạy

Tôi đang sử dụng Eclipse 3.6 với plugin Groovy 2.7.0. Tôi đã cài đặt Groovy 1.8.5 trên máy của mình và groovy-all.jar nằm trong classpath của ứng dụng.

Tôi có thể xem tất cả các tệp groovy trong thư mục WEB-INF/classes với phần mở rộng .groovy không có đuôi mở rộng .class.

Tôi thiếu gì ở đây?

+1

Bạn đang biên soạn như thế nào? Làm thế nào bạn chạy nó? Có gì trên classpath của bạn? Có gì trong Jar của bạn? –

+0

Phiên bản Eclipse nào? Phiên bản nào của Groovy? Cập nhật plugin Groovy? ... * sigh * ... –

+0

@tim_yates Tôi đã cập nhật câu hỏi của mình. –

Trả lời

11

Có hai khả năng:

  1. Bạn dự án không phải là một dự án hấp dẫn và vì vậy các files groovy của bạn đang được coi là nguồn tài nguyên (không nguồn). Tài nguyên được sao chép vào thư mục đầu ra, trong khi các nguồn được biên dịch. Đảm bảo rằng biểu tượng dự án của bạn có một biểu tượng nhỏ GR trên đó.

  2. Hoặc có thể bạn đã vô tình bật thư mục tập lệnh cho thư mục nguồn nơi tệp groovy của bạn được đặt. Chuyển đến Preferences -> Groovy -> Compiler và xem phần trên Groovy Script Folders. Lưu ý rằng các thư mục Groovy Script cũng có thể được cấu hình trên cơ sở từng dự án, vì vậy bạn cũng có thể cần xem xét Project -> Properties -> Groovy Compiler.

+0

Bạn thật tuyệt vời! Lựa chọn 2 làm việc cho tôi. –

2

Đảm bảo bạn đang thực thi mã sử dụng groovy và không java. Nếu không, bạn sẽ phải liên kết tệp groovy.jar trong đường dẫn lớp của bạn. Xem này discussion.

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