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

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.


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).


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".


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.


18

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

Perbarui proyek Maven


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.


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


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


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.



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


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.


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.


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.


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!


2

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

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


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


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


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.


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.


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.


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


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.


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.


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.


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.


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.


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.


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.


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;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.