2010-12-15 14 views
18

Muhtemelen aptalca bir şeyler yapıyorum, ancak bunu göremiyorum.Bir Eclipse projesinde Scala ve Java dosyalarını karıştırma

ve ben bir Scala proje oluşturduktan ve ekledim Helios

için Scala Eclipse eklentisi gece yapı (I Gallileo kullanarak düzgün çalışması için GlassFish destek alamadım çünkü Helios) Ben Eclipse Helios yükledim bazı dosyalar - Java ve Scala'nın bir karışımı.

Tümü sözdizimsel olarak doğru görünüyor - Eclipse editörü en azından her dosyanın hangi dil olduğunu biliyor ve bunları yaptığımda sözdizimi hatalarıyla ilgili doğru rapor veriyor - ancak Java dosyaları Scala'da oluşturulan sınıfları bulamıyor. IDE sitesi, bunların hepsinin işe yarayacağını öne sürüyor gibi görünüyor.

Scala dosyalarından herhangi biri için bin dizininde sınıf dosyaları yoktur (Java dosyaları tarafından tanımlanan sınıfların her biri için sınıf dosyaları vardır), bu nedenle Scala dosyalarının oluşturulmadığı görülmektedir. . Bu eksik sınıf dosyaları, Java dosyalarının neden sınıfı görmediğini açıklar.

Neleri özledim? Eclipse'e bu dosyaları oluşturmasını nasıl söyleyebilirim?

+0

compileorder

Pencere-> Tercihler-> Scala-> Compiler-> kurmak Manager->, Proje özellikleri pencerelerindeki inşaatçıları kontrol edin ve Scala'nın kontrol edildiğinden emin olun. – pedrofurla

+0

Başka bir vahşi tahmin, farklı kaynak klasörleri kullanın. Scala ve Java için bir tane, hiç böyle bir problem yaşamadım. – pedrofurla

+0

Teşekkürler. Scala oluşturucusunun seçildiğini ve Java dosyalarını farklı bir klasöre taşıdığını kontrol etti. Yardımcı olmadı :( –

cevap

8

Ayrıca Helios'u kullanıyorum (çünkü 64-bit gittim) ve eklentinin zaman zaman biraz garip davrantığını fark ettim (Galileo'dan çok daha farklı olmasa da). Java ve Scala'yı karıştırırken bulduğunuz gibi, sorun yok gibi görünüyor, ancak derlenmiş bir kod olmayacaktı. Ya da daha da kötüsü Scala sınıfına bağlı bir Java sınıfı derlenmez çünkü Scala sınıfı derlenmemişti - ama tüm hatalar projeden çıkana kadar derleme yapmazdı. ... ug.

Sınıf yolu ve proje dosyaları ile uğraşmaya başladım ve sonunda işe koyuldum, ancak gerçekten nedenini söyleyemem. Yemin ederim bir dosyayı değiştirdim, sonra değiştirdim ve sonra işe yaradı mı?

Neyse, işte benim dosyalar şunlardır:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>xxxxxxxxxxxxx</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
    <buildCommand> 
     <name>org.scala-ide.sdt.core.scalabuilder</name> 
     <arguments> 
     </arguments> 
    </buildCommand> 
</buildSpec> 
<natures> 
    <nature>org.eclipse.jdt.core.javanature</nature> 
    <nature>org.scala-ide.sdt.core.scalanature</nature> 
</natures> 
</projectDescription> 

ve kritik şey SCALA_CONTAINER JRE_CONTAINER önce gelir gibi görünüyor

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
<classpathentry kind="src" path="src"/> 
<classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/> 
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> 
<classpathentry kind="output" path="bin"/> 
</classpath> 

, ama ... bunun üzerinde bahis olmaz . "Doğa" nın düzeni de önemli olabilir.

Günlük güncellemeleri ile, bir veya iki hafta için şimdi benim için çalışıyordu, bu yüzden ... * parmaklar-çarpı *

+0

Tamam, bunu denedi. .project oldukça farklı .lasspath yüzden yukarıda verdi bir ve ... hiçbir fark etmek .classpath değişti aynıydı. Ben, projeyi silinen dosyaları vb reimported ama :( –

+0

Benim mistakethe doğanın Maalesef hala bir şey yapmadı o değişen. Diğer sırayla vardı çalışmıyor ettik. Düşünemiyorum Hala herhangi sınıf Bes –

+0

bina değil şey ben çalışma alanı çapında yaptı. .settings ... ki (özellikle 1.5.0_22) konularda, oh, bu projede Java 1.5 kullanıyorum uygulanabilir bir şey görünmüyor. kendisi 1.6 çalışıyor Eclipse. –

7

Eclipse-IDE bazen Scala dosyaları zaman derlemek olmadığını fark ettik Yeni bir dosya oluşturuyorum. Projeyi Paket Gezgini'nde seçmem ve yenilemem gerekiyor (F5). Ayrıca, giderek Eclipse (ilk ilk Scala vs Java) derleme sırasını değiştirebilirsiniz: Her ihtimale karşı

+1

Merhaba Steve, pom içinde derleme sırasını değiştirmek için nasıl anlarım, M2e kullanıyorum, sadece scala-derleme-ilk seçeneği http://davidb.github.io/scala- görebilirsiniz maven-eklentisi/example_java.html – ZiglioUK