2012-03-13 9 views
9

Tôi đang sử dụng eclipse Phiên bản: 3.7.2 với IDE Scala cho Eclipse 2.1.0.nightly-2_09-201203121521-6e8582e. Phiên bản java là 1.6.0_31. Hệ điều hành là Ubuntu 11.10.Scala eclipse plugin java.lang.ClassNotFoundException

Tôi đã tìm giải pháp cho vấn đề này, nhưng tôi chưa tìm thấy giải pháp nào. Tôi hy vọng không có một câu trả lời rõ ràng mà tôi đã bỏ lỡ.

Tôi có lớp này (nốt gói):

package model.x.y 

import org.scalatest.FunSuite 
import org.junit.runner.RunWith 
import org.scalatest.junit.JUnitRunner 

@RunWith(classOf[JUnitRunner]) 
class GibberishTestSuite extends FunSuite { 
    test("Check Gibberish") { 
    assert("blah" === "blah") 
    } 
} 

Tôi cũng đang sử dụng gradle và đường dẫn nguồn trông như thế này (lưu ý rằng các gói không phù hợp với hệ thống phân cấp thư mục):

.../src/test/scala/model/GibberishTest.scala 

Eclipse và gradle tạo ra các tập tin lớp coresponding:

bin/model/x/y/GibberishTestSuite.class 
build/classes/test/model/x/y/GibberishTestSuite.class 

này chạy tốt qua gradle, nhưng khi tôi cố gắng chạy trong nhật thực, tôi nhận được

Class not found model.GibberishTestSuite 
java.lang.ClassNotFoundException: model.GibberishTestSuite 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 

Nếu tôi thay đổi gói để

package model 

để phân cấp thư mục và gói tên phù hợp với, sau đó tôi có thể chạy thử nghiệm đơn vị trong nhật thực. Trong scala, nó là hợp pháp đối với cấu trúc gói và cấu trúc thư mục không khớp. Tuy nhiên, sự không phù hợp dường như gây nhầm lẫn với nhật thực hoặc plugin.

Tôi có làm gì sai không? Tôi có thiếu một số sắc thái cấu hình? Tính năng ngôn ngữ scala này có được hỗ trợ trong nhật thực không? Nó sẽ được hỗ trợ tại một số điểm?

Cảm ơn bạn.

+0

Tôi đã nhận thấy điều tương tự. Tôi cho rằng nó không được hỗ trợ bởi bản dựng Eclipse. –

Trả lời

7

Đây là một vấn đề Eclipse (JDT) chứ không phải là vấn đề Scala/scala-ide.

Đã xảy ra lỗi chống lại Eclipse (Package Explorer tree does match declared package), nhưng về cơ bản, Eclipse giả định rằng hệ thống phân cấp khớp với tên gói. Điều này sẽ được sửa cuối cùng trong Scala-ide, nhưng mô hình cần được thay đổi, để loại bỏ sự phụ thuộc vào JDT. Nếu bạn muốn sửa lỗi này, bạn nên thêm phiếu bầu của mình vào vấn đề trên.

+0

không có hoạt động xung quanh? – zinking