Kesalahan gerhana: "Impor XXX tidak dapat diselesaikan"

138

Saya mencoba bekerja dengan Hibernate di Eclipse. Saya membuat proyek sederhana baru dan saya telah mengunduh proyek kolega juga, melalui CVS. Keduanya tidak bekerja, sementara di Eclipse kolega saya bekerja. Masalahnya adalah, untuk setiap impor kelas Hibernate, Eclipse mengatakan:

The import org.hibernate cannot be resolved

Tapi semua stoples Hibernate berada di jalur pembuatan, yaitu:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
kebiruan
sumber
1
bagaimana Anda menambahkan toples ini di jalur pembuatan Anda?
Jigar Joshi
3
oleh Properties> Java Build Path> Libraries> Add external JARs
kebiru
1
Jika berhasil dan sekarang tidak, lihat jawaban @dogbane di bawah ...
Shanimal
periksa apakah ada ruang di folder impor Anda. jika ada ruang, hapus ruang dan impor proyek ke gerhana.
schin chan

Jawaban:

291

Coba bersihkan proyek Anda dengan membuka item menu berikut:

Project > Clean...

Jika tidak berhasil, coba hapus stoples dari jalur build dan tambahkan lagi.

dogbane
sumber
5
mungkin menjadi masalah JRE. Coba pilih "JRE alternatif" di properti proyek.
dogbane
10
Bersih juga bekerja untuk saya. Apa yang sebenarnya terjadi (semuanya tiba-tiba menjadi gila) dan bagaimana Clean membantu?
Sabre Runner
1
Ini juga memecahkan masalah bagi saya; ini bukan proyek hibernate, tapi libGdx , memanggil java import dan bukan jars. Penasaran yang sama dari @SabreRunner, dan juga: ada bug di suatu tempat di alat lingkungan?
Zac
3
Bekerja untuk saya juga. Ini sangat membuat frustrasi ketika menu bantuan kontekstual menemukan kelas Anda dan mengetik tangan impor yang sama di atas yang bertanda "tidak dapat diselesaikan" dan tidak ada kesalahan ...
Shanimal
1
Cara ini TIDAK membantu dalam kasus saya. Versi Eclipse saya adalah: Rilis Neon.3 (4.6.3)
Timothy.Li
27

Jelas ada kasus di mana ada masalah yang valid namun Eclipse terkadang melempar kesalahan ini tanpa alasan yang baik.

Ini masih (2019-03) adalah bug Eclipse (2010) lama yang dapat diselesaikan dengan membuat perubahan yang dapat diabaikan pada pengaturan proyek.

Pengaturan yang saya pilih untuk diubah adalah: Project> Properties> Java Build Path> Order and Export> buat perubahan pesanan yang tidak berarti> Terapkan.

Mengubah urutan kembali tidak menimbulkan masalah. Cukup menyentuh file mungkin juga menyelesaikan masalah (saya akan menguji sentuhan lain kali).

pengguna1133275
sumber
1
File> Properties Harus diubah menjadi Project> Properties.
Timothy.Li
Cara ini TIDAK membantu dalam kasus saya. Versi Eclipse saya adalah: Rilis Neon.3 (4.6.3)
Timothy.Li
Bagi saya, JRE System Library harus berada di atas Dependensi Maven di tab order & ekspor Build Path.
Anthony Hayward
2
Bug ini sekarang setidaknya berumur 9 tahun.
pengguna1133275
Masih di sana, November 2019. Sheesh.
Tullochgorum
22

Bersihkan proyek. Dan periksa ulang jars benar-benar ada di jalur build (tanpa kesalahan). Pastikan juga tidak ada apa pun di tampilan "Masalah".

Bozho
sumber
Saya sudah mencoba ini lebih dari sekali: dengan stoples individu, di dalam perpustakaan, ... Tampaknya kesalahan yang aneh!
kebiruan
1
apakah Anda memiliki sesuatu di tampilan Masalah?
Bozho
Hanya masalah yang saya katakan dan peringatan jenis "Kelas Azienda serializable tidak mendeklarasikan bidang serialVersionUID akhir statis jenis panjang".
kebiruan pada
18

Saya menemukan masalahnya. Itu adalah hibernate3.jar. Saya tidak tahu mengapa itu tidak diekstrak dengan baik dari .zip, mungkin korup . Cara yang baik untuk memeriksa apakah toples rusak atau tidak adalah menavigasi melalui struktur pohon mereka di "Project Explorer" di Eclipse: jika Anda tidak dapat memperluas simpul jar, mungkin itu rusak. Saya telah melihat bahwa memiliki paket yang rusak sering terjadi saat Anda menyeret dan melepaskannya ke "Project Explorer". Mungkin lebih baik untuk memindahkan dan menyalinnya di lingkungan OS! Terima kasih semua.

kebiruan
sumber
18

Jika adalah proyek Maven, klik juga Maven >> Perbarui proyek ... (F5)

Perbarui proyek Maven

albertoiNET.dll
sumber
Jika Anda mengimpor proyek maven sebagai "proyek Java" maka masalah ini terjadi. Ubah proyek menjadi proyek maven dan perbarui seperti yang Anda katakan, maka masalahnya hilang.
kodmanyagha
9

Saya menyelesaikannya dengan menghapus proyek (jangan hapus pada disk) dan mengimpornya lagi.

SoldierShen
sumber
8
  1. Proyek proyek bersih -> bersih ...
  2. Klik kanan pada proyek -> BuildPath -> Configure BuildPath -> tab Libraries ->

Klik dua kali pada JRE SYSTEM LIBRARY -> Kemudian pilih JRE alternatif

Balkrushna Patil
sumber
6

Saya memiliki masalah, bahwa classpath rusak entah bagaimana.

Jadi klik kanan pada proyek di Package explorer> Plug-in tools> Update classpath ... lakukan itu untuk saya

wuppi.dll
sumber
Di Neon.3 Rilis (4.6.3), TIDAK ADA alat Plug-in di menu kontekstual dengan mengklik kanan pada proyek di Penjelajah Paket
Timothy.Li
6

Saya menyelesaikan masalah ini dengan memperbarui proyek: klik kanan pada proyek Maven, pilih Maven -> Perbarui Proyek -> pilih kotak centang Force Updates of Snapshots / Releases.

Kalahasthi Satyanarayana
sumber
5

Coba tambahkan JRE System Library di jalur build proyek Anda.

Gaurav Pant
sumber
4

Ini telah menyelesaikan masalah saya.

1) Proyek Proyek Bersih -> Bersih ...

2) Klik kanan pada proyek -> BuildPath -> Configure BuildPath -> tab Libraries -> Klik dua kali pada JRE SYSTEM LIBRARY -> Kemudian pilih JRE alternatif

3) Klik Simpan

4) Sekali lagi pergi ke proyek Anda di penjelajah proyek dan klik kanan ke proyek -> BuildPath -> Konfigurasi BuildPath -> tab Perpustakaan -> Klik dua kali pada JRE SYSTEM LIBRARY -> Kali ini pilih "Lingkungan Eksekusi"

5) Terapkan

Atul Waghmare
sumber
3

Bagi saya, hal itu membantu mengubah tingkat kepatuhan penyusun . Untuk alasan yang tidak diketahui itu ditetapkan ke 1.6 dan saya mengubahnya menjadi 1.8.

Setelah di project level klik kanan project> Properties> Java Compiler, sedangkan di Eclipse klik menu Window> Preferences> Java> Compiler.

Alex P.
sumber
3

Saya mencoba semua jawaban di atas tetapi tidak berhasil. Dalam kasus saya, ada folder build / class yang dihasilkan dengan beberapa file ".class" tambahan. Saya akhirnya pergi ke penjelajah paket, mengklik kanan pada proyek dan memilih opsi "Refresh" dan itu membuat folder build / class tersedia lagi untuk menyelesaikan masalah.

egallardo
sumber
2

Dalam kasus saya, itu adalah stoples yang rusak di gudang Maven. Hapus file jar di repositori dan biarkan Maven mendownloadnya lagi.

Ketika saya menjalankan mvn clean installdari baris perintah, itu berjalan dengan baik, tetapi Eclipse masih tidak bisa mengkompilasi kode. Ketika saya menjalankan maven installEclipse kemudian saya melihat bahwa Maven mengeluh tentang file jar yang buruk. Jadi saya menghapusnya dan menjalankannya maven installlagi. Masalahnya hilang.

Evgeny Shmulev
sumber
2

Untuk mengunduh file jar yang tidak ada di direktori .m2 Anda, Anda harus menjalankan mvn clean installperintah untuk proyek Anda pom.xml. Kemudian Anda harus memperbarui dependensi proyek dengan mengklik Alt+F5. Ini berhasil untuk saya!

ÖMER TAŞCI
sumber
2

Menghapus "module-info.java" memang menyelesaikan masalah untuk saya!

File ini dibuat secara otomatis dan memang muncul di hierarki saya ...

val_t
sumber
1

Saya memiliki masalah yang sama karena saya menambahkan toples yang saya buat, di mana saya telah mengatur direktori dasar pengemasan selain direktori dasar kelas. Akibatnya kelas misalnya java.util.Listharus diimpor util.Listmeskipun impor yang disarankan adalah yang pertama.

Periksa toples yang diimpor di bawah pustaka yang direferensikan untuk melihat bahwa mereka diimpor dengan benar

kon psych
sumber
1

Saya tidak mengerti alasan di balik ini tetapi ini memecahkan masalah yang sama yang saya hadapi. Anda mungkin memerlukan langkah-langkah ini sebelum menjalankan langkah-langkah yang disebutkan dalam solusi di atas (Bersihkan semua proyek dan Bangun secara otomatis).

proyek klik kanan -> Properties -> Project Facets -> pilih Java -> Apply

rata-rata
sumber
1

Setiap kali Anda menemukan masalah ini, buka Proyek> Bersihkan, lalu pilih Bersihkan semua proyek. Ini harus diselesaikan, jika tidak coba hapus toples itu dan tambahkan lagi. Hal terakhir adalah mencoba memulai ulang Eclipse.

Srinivas Thammanaboina
sumber
1

pom.xml

Jika ini adalah proyek Maven, buka pom.xml dan hapus semua toples dependensi. Simpan itu. Proyek akan dibangun secara otomatis.

Kemudian tambahkan lagi stoples ketergantungan (Anda bisa melakukan Ctrl+ Z). Simpan itu. Proyek akan secara otomatis dibangun dan Anda tidak akan melihat kesalahan itu.

sravan
sumber
1

Solusi untuk Eclipse IDE

Dalam kasus saya, saya memperbaikinya dengan mengoreksi salah satu dari dua file ini yang mungkin rusak: .classpath atau .project .

Untuk memperbaiki salah satu file rusak, Anda dapat menyalin dari proyek lain yang memiliki kedua .project file atau .classpath file tersebut dan bebas dari kesalahan. Namun pastikan untuk tidak menambahkan pengaturan tambahan yang tidak akan digunakan.

Tavo
sumber
1

Hapus ketergantungan di POM.XML Anda dan unduh jar dan tambahkan ke buildpath.

kadang -> maven tidak akan mencerminkan perubahan baru dan ini mungkin menyebabkan masalah seperti ini

Rajagopal K
sumber
0

Silakan coba dan periksa apakah semua lib sudah siap. Saya memiliki masalah yang sama. Tapi saya menyelesaikannya dengan memindahkan folder lib dan menambahkan semua toples lagi di jalur pembuatan.

Ravikumar
sumber
0

Saya punya masalah yang sama. Saya mengunduh jar dan menambahkannya ke jalur pembuatan, tetapi saya tidak memperhatikan bahwa ekstensinya adalah .jar.zip. Saya kembali mengubahnya menjadi .jar dan menambahkannya ke jalur pembuatan.

Itu memecahkan masalah saya. Ini kesalahan yang sangat konyol tapi saya menulisnya di sini kalau-kalau itu bisa membantu seseorang.

Ali786
sumber
0

Jika Anda bekerja dengan Maven dan mengalami masalah ini, periksa server repositori (misalnya server nexus), jika artefak ada di sana. Terkadang, mereka dapat mengubah nama artefak dan Anda mencoba mendapatkan artefak dengan nama lamanya.

drJava
sumber
0

Diatasi dengan menautkan sumber. Dari penjelajah klik kanan pada proyek, pilih properti, pilih Java Build Path, pilih Sumber dari tab, tekan tombol "LinkSource". Dan menentukan folder untuk ditambahkan ke proyek.

livelovelaugh
sumber
0

Saya juga tidak bisa mengimpor. Butuh beberapa jam untuk mencari tahu, bahwa saya mencoba menggunakan perpustakaan / jar yang terikat 1,6, ketika saya mencoba mengkompilasi untuk 1,8. Ketika saya mengalihkan proyek saya juga untuk menggunakan 1.6, masalah impor telah hilang. Semua pesan kesalahan mengarah ke arah yang salah. Hanya di sumber saya menemukan beberapa batasan yang mengarah ke versi 1.6. Dan: Misalnya .settings dan .classpath (File-Search) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 dapat memberikan petunjuk, tentang masalah seperti itu.

sqller
sumber
0

Saya menghadapi masalah yang sama dan saya menyelesaikannya dengan menghapus botol yang ditambahkan dua kali dalam dua dependensi berbeda di pom.xml saya. Menghapus salah satu ketergantungan menyelesaikan masalah.

Reema
sumber
0

Bagi saya, sepertinya saya menambahkan level yang salah dari folder perpustakaan. Saya mengunduh Jericho HTML Parser , membuka ritsletingnya eclipse-workspace/libraries/jericho-html-3.4/

Kemudian saat menambahkan ini sebagai folder pustaka eksternal, triknya adalah menavigasi ke folder itu, sorot folder "kelas" dan tekan Buka. Saya sebelumnya telah mencoba menambahkan induk dan berbagai tingkatan subfolder dan tidak berhasil.

Ini cukup banyak dijelaskan di sini , katanya

Anda juga dapat menambahkan folder kelas , direktori yang berisi file kelas Java yang tidak ada dalam JAR.

Ada dua pelajaran yang dipetik di sini untuk saya, mohon maaf jika di luar topik:

  1. Bacalah instruksi dengan seksama - seperti kata demi kata!

  2. Jangan menyerah - ini pertama kalinya saya menambahkan perpustakaan, saya butuh waktu sekitar dua jam untuk menambahkannya.

pateksan
sumber
0

[ Bingkai kerja Code Igniter ] [ Pustaka impor ]

Coba klik kanan pada proyek dalam tampilan Explorer Proyek, pilih segarkan . Semua penanda kesalahan hilang secara mengejutkan untuk kasus saya.


Saya tidak pandai Eclipse. Saya mulai menggunakan Android Studio untuk mengembangkan Android. Tapi, menjengkelkan melihat penanda kesalahan merah melayang sepanjang waktu sementara keseluruhan proyek masih berfungsi dengan baik. Itu terjadi pada saya ketika saya menggunakan komposer untuk mengimpor perpustakaan seperti ini:

require __DIR__ . '/../../vendor/autoload.php';

use \Firebase\JWT\JWT;
Nguyen Tan Dat
sumber