Eclipse: Bildirilen paket beklenen paketle eşleşmiyor


86

Harici bir projeyi içe aktarırken sorun yaşıyorum. Dosya -> İçe Aktar ... -> Mevcut Projeleri Çalışma Alanına, projenin bulunduğu ve her şeyin içe aktarıldığı klasörü seçiyorum - ancak projenin paket adları Eclipse'in beklediği gibi görünmüyor. Paket adlarının hepsinin bir öneki vardır:

prefix.packagename1
prefix.packagename2

vb.

Ama Eclipse bekliyor

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

vb. çünkü dizin src / prefix1 / prefix / package1

Harici kodla gerçekten uğraşmak istemiyorum. Eclipse'e "src / prefix1" dizinini yok saymasını nasıl söyleyebilirim? Ya da başka ne yapabilirim?


package (name of package under which the file to be ) Dosyanın başlangıcında ekledim
Sai Ram

Yanıtlar:


105

Yapma yoluna gidin ve src/prefix1bunun yerine kaynak yolunu değiştirin src.

srcDizine sağ tıklayıp "Yolu Oluştur / Oluşturma yolundan kaldır" ı seçmek en kolayı olabilir , ardından src/prefix1dizini bulun , sağ tıklayın ve "Yolu Oluştur / Kaynak klasör olarak kullan" seçeneğini seçin.


2
Az önce yaptığı her şeyi nasıl geri alabilirim? "Yol Oluştur / Kaynak klasör olarak kullan" ı tıkladım ve artık hiçbir şey çalışmıyor. Düzenleme:
Sorumun

25
Jon'un önerisinin işe yaradığını, ancak tutulmanın yeniden başlatılması gerekebileceğini unutmayın.
Samik R

1
!! Kaynak klasörü değiştirdikten sonra hala hatayı görüyorsanız, projeyi oluşturun. Eclipse bazen bende bir şeyi parçalama isteği uyandırıyor.
MattC

4
Kapat / Aç prj benim için çalıştı ... Eclipse büyük bir araçtır, bazen bazı şeyleri unutabilir
niken

Teşekkürler dostum, harika çözüm.
Runcorn

71

Bu sorunla az önce karşılaştım ve Bay Skeet'in çözümü benim için işe yaramadığından, bu sorunu nasıl çözdüğümü paylaşacağım.

Bir kaynak dizin tanımlamadan önce java dosyasını 'src' altında açtığım ortaya çıktı.

Tutulma içinde 'src' dizinine sağ tıkladıktan sonra, 'yol oluştur' ve ardından 'Kaynak Klasörü Olarak Kullan'ı seçin.

Zaten açık olan java dosyasını kapatın ve yeniden açın (F5, dosyayı yenilemek işe yaramadı).

"Prefix1" den java dosyasına giden yolun, dosyadaki paketle aynı hizaya gelmesi sağlandı (örneğin, istek sahibinin sorusu prefix1.prefix.packagename2). Bu çalışmalı

Eclipse artık 'src'den şikayet etmemeli.


1
Bu oydu. Oldukça basit ama beni bir süreliğine sıkıştı. Teşekkürler!
Christian Vielma

Derleme yolunu ayarladıktan sonra dosyanın kapanması ve yeniden açılması benim için de gerekliydi. Teşekkürler!
ed-

Evet! Benim için de çalıştı.
Robert Casey

11

Sorunlu * .java dosyalarınızı başka bir klasöre taşıyın.

'Src' öğesini tıklayın ve "F5" e basın.

Kızıl haçlar çözülür.

* .Java dosyalarınızı "paket yoluna" döndürün, 'src' öğesini tıklayın ve "F5" e basın.

Her şey yolunda olmalı.


2

Mevcut bir projeyi içe aktardıysanız, kaynak klasörlerinizi kaldırın ve ardından yolu oluşturmak için onları tekrar ekleyin ve tutulmayı yeniden başlatın. Tutulma çoğu zaman siz yeniden başlatana kadar hatayı göstermeye devam eder.


2

Benim için işe yarayan tek şey, projeyi silip tekrar içe aktarmak. Tıkır tıkır çalışıyor :)


1

Başarısız derlemeler IDE dışında çalıştırıldıktan sonra benim için oluyor. Çalışma alanınızı temizlemek işe yaramazsa şunları deneyin: 1) Tüm projeleri silin 2) STS / eclipse'i kapatın ve yeniden başlatın, 3) Projeleri yeniden içe aktarın


0

Bu sorunu Eclipse'de bazen .classpath dosyası olmayan bir Android projesini içe aktarırken alıyorum. Eclipse'in yarattığı, Android'in beklediği ile tam olarak aynı değil. Ancak, Android .classpath dosyalarının tümü genellikle görecelidir, bu nedenle yalnızca başka bir projeden doğru bir .classpath dosyasını yanlış .classpath üzerine kopyalıyorum. Bunu nasıl yaptığımı gösteren bir video oluşturdum: https://www.youtube.com/watch?v=IVIhgeahS1Ynto


0

Projenizde package name1.name2.name3.name4 (beyan edilen paket) gibi bir paket olduğunu varsayalım

Paket gezgini,
name1.name2 adlı üst düzey paket
alt paketlerini name3.name4 olarak gösterir.

Hatalar yaşarsınız çünkü Eclipse, paket adını, içe aktardığınız noktadan başlayarak diskteki dosya dizini yapısından çıkarır.

Durumum biraz daha karmaşıktı, belki de çalışma alanımın dışındaki bir klasöre sembolik bir bağlantı kullandığım için.

İlk olarak Build Path.Java Build Path.Source Tab.Link Source Button'ı denedim.Paketinizde name1'den önce klasöre göz atın.Folder-name istediğiniz gibi (sanırım). Ama sorunları vardı.

Ardından, derleme yolundan klasörü kaldırdım ve Dosya> İçe Aktar ...> Genel> Dosya Sistemi> İleri'ye tıklayın> Dizinden> Ad1'in üzerindeki klasöre Gözat ...> Gelişmiş düğmesine tıklayın> Çalışma alanında bağlantı oluştur> Son'a tıklayın buton.


Doğru. Benim durumumda, proje adına -2.0.0-SNAPSHOT eklenmiş bir sonek vardı. Bu önek kaldırıldı (projeyi yeniden adlandırın ..) ve her şey çalıştı.
JRun

0

Projenin src klasörüne gidin ve ondan tüm kodu geçici bir yere kopyalayın ve projeyi oluşturun. Ve şimdi gerçek kodu geçici konumdan src projesine kopyalayın. Ve yapıyı tekrar çalıştırın. Sorun çözülecek.

Not: Bu tutulmaya özgüdür.


0

Ben de şu anda aynı sorunu yaşıyorum. Ancak, ilk birkaç cevap benim için çalışmıyor.Bir çözüm öneriyorum: .classpath dosyasını değiştirin.Örneğin , classpathentry düğümünün yolunu şu şekilde tanımlayabilirsiniz : path = "src / prefix1 / java" veya path = " src / prefix1 / kaynaklar ". Umarım yardımcı olabilir.


0

Benim için sorun, mevcut bir projeyi maven'e dönüştürüyordum, belgelere göre klasör yapılarını oluşturuyordum ve paketin bir parçası olarak 'ana' klasörü gösteriyordu. Jon Skeet / JWoodchuck'a benzer talimatları izledim ve Java oluşturma yoluna girdim, tüm bozuk derleme yollarını kaldırdım ve ardından derleme yolumu 'src / main / java' ve 'src / test / java' olarak ekledim her biri için kaynak klasörleri olarak ve sorunu çözdü.


0

Oluşturma yolu, paket adının 'öncesine kadar' yolunu içermelidir.

Örneğin, klasör yapısı şöyleyse: src/main/java/com/example/dao import ifadesini içeren sınıf 'package com.example.dao'yanlış paket hatasından şikayet ediyorsa , bu durumda yapı yolu include:src/main/java sorunu çözmelidir.


-1
  1. Paketi olan harici klasöre sağ tıklayın
src.prefix1.prefix.packagename1 
src.prefix1.prefix.packagename2
  1. Yapı yolu -> Yapı yolundan kaldır'ı tıklayın.

  2. Şimdi projenizin klasör bölümündeki prefix1 klasörüne gidin.

  3. Sağ tıklayın -> Oluşturma yolu -> Kaynak klasör olarak kullan.

  4. Bitti. Paket klasörü artık herhangi bir hata göstermeyecek. Hala görünüyorsa, projeyi yeniden başlatmanız yeterlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.