Eclipse hang saat memuat meja kerja

95

Gerhana saya berhenti memuat meja kerja. Saya sudah mencoba mulai dengan ./eclipse --clean

Saat memulai dari konsol, ini memunculkan pengecualian berikut:

java.lang.NullPointerException
    at org.eclipse.core.internal.runtime.Log.isLoggable(Log.java:101)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeIsLoggable(ExtendedLogReaderServiceFactory.java:57)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:158)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:146)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
    at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
    at org.eclipse.core.internal.runtime.Log.log(Log.java:60)
    at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:92)
    at org.tigris.subversion.clientadapter.Activator.getAnyClientAdapter(Activator.java:81)
    at org.tigris.subversion.subclipse.core.SVNClientManager.getAdapter(SVNClientManager.java:145)
    at org.tigris.subversion.subclipse.core.SVNClientManager.getSVNClient(SVNClientManager.java:92)
    at org.tigris.subversion.subclipse.core.SVNProviderPlugin.getSVNClient(SVNProviderPlugin.java:425)
    at org.tigris.subversion.subclipse.core.status.NonRecursiveStatusUpdateStrategy.statusesToUpdate(NonRecursiveStatusUpdateStrategy.java:53)
    at org.tigris.subversion.subclipse.core.status.StatusCacheManager.refreshStatus(StatusCacheManager.java:273)
    at org.tigris.subversion.subclipse.core.resourcesListeners.FileModificationManager.refreshStatus(FileModificationManager.java:179)
    at org.tigris.subversion.subclipse.core.resourcesListeners.FileModificationManager.resourceChanged(FileModificationManager.java:128)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1530)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:45)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Berhenti saat memuat com.android.ide.eclipse.adt

Ada apa dengan meja kerja saya?

Layar pengaktifan gerhana

endian
sumber
1
Sepertinya --cleantidak melakukan apa-apa saat -clean(tanda hubung tunggal) tampaknya benar-benar berpengaruh (menggunakan Eclipse Neon dalam kasus saya).
Christopher Schultz

Jawaban:

146

DISCLAIMER: THIS WILL DELETE ALL OF YOUR ECLIPSE WORKSPACE SETTINGS AND YOU WILL HAVE TO RE-IMPORT ALL YOUR PROJECTS, THERE ARE LESS DESTRUCTIVE ANSWERS HERE

Coba yang berikut ini:

  1. Hapus folder .metadata di ruang kerja lokal Anda (inilah yang berhasil untuk saya). Tampaknya ini berisi file .LOCK yang jika tidak ditutup dengan benar, mencegah gerhana dimulai dengan benar. Pada sistem berbasis Unix Anda dapat mengetik mengikuti pada baris perintah;

    rm -r workspace/.metadata
    
  2. Hapus direktori .eclipse Anda di direktori home Anda. Luncurkan eclipse. Jika itu tidak berhasil,

  3. Buka gerhana di bawah akun pengguna lain. Jika dimuat, Anda tahu masalahnya ada pada akun Anda, bukan pada pemasangan gerhana Anda.

George
sumber
itu terjadi pada saya setelah saya mengklik File-> restart karena kesalahan.
nurnachman
68
Dalam banyak kasus, rm workspace/.metadata/.lockbekerja untuk saya. Pastikan untuk memulai gerhana menggunakan ./eclipse -clean -refreshapa pun yang Anda coba. Terima kasih telah mengajari kami mv .eclipse .eclipse.old, yang tidak membantu hari ini. Hari ini membantu menghapus workspace/.metadata/.plugins/. Semua Plugin benar-benar berfungsi setelah itu. Beberapa pengaturan hilang. Anda kemudian dapat menggunakan Import...untuk mengimpor semua proyek Anda yang ada sekaligus. Menghapus workspace/.metadataadalah pilihan terakhir, tetapi berhasil. Anda dapat menyimpannya workspace/.metadata/.mylynjika tidak ingin kehilangan tugas.
sulai
Terima kasih banyak untuk ini! Menyelamatkan saya dari banyak upaya ketika Eclipse berhenti merespons secara tiba-tiba..Bebatuan yang mengalir deras dan begitu pula komunitasnya!
HungryForKnowledge
3
Hapus saja file .lock - tidak perlu kehilangan semua pengaturan Anda!
slott
7
menghapus .lock tidak membantu saya tetapi menghapus .metadata/.plugins/org.eclipse.core.resources/.snaptidak
sersi
92

Prosedur yang ditunjukkan di http://off-topic.biz/en/eclipse-hangs-at-startup-showing-only-the-splash-screen/ berhasil untuk saya:

  1. cd .metadata / .plugins
  2. mv org.eclipse.core.resources org.eclipse.core.resources.bak
  3. Mulai gerhana. (Seharusnya ini menunjukkan pesan kesalahan atau ruang kerja kosong karena tidak ada proyek yang ditemukan.)
  4. Tutup semua tab editor yang terbuka.
  5. Keluar dari gerhana.
  6. rm -rf org.eclipse.core.resources (Hapus direktori yang baru dibuat.)
  7. mv org.eclipse.core.resources.bak / org.eclipse.core.resources (Pulihkan direktori asli.)
  8. Mulai gerhana dan mulai bekerja. :-)

Dalam jawaban lain:

eclipse -clean -clearPersistedState

disebutkan - yang tampaknya memiliki efek yang sama atau bahkan lebih baik.

Berikut ini skrip untuk MacOS (menggunakan Macports) dan Linux (diuji di Ubuntu dengan Eclipse Equinox) untuk memulai dengan opsi mematikan dari gerhana yang sedang berjalan. Anda mungkin ingin menyesuaikan naskah dengan kebutuhan Anda. Jika Anda menambahkan platform baru, harap edit skripnya tepat di jawaban ini.

#!/bin/bash
# WF 2014-03-14
#
# ceclipse:
#   start Eclipse cleanly
#
#   this script calls eclipse with -clean and -clearPersistedState
#   if an instance of eclipse is already running the user is asked
#   if it should be killed first and if answered yes the process will be killed
#
# usage: ceclipse
#

#
# error
#
#   show an error message and exit
#
#   params:
#     1: l_msg - the message to display
error() {
  local l_msg="$1"
  echo "error: $l_msg" 1>&2
  exit 1 
}

#
# autoinstall
#
#  check that l_prog is available by calling which
#  if not available install from given package depending on Operating system
#
#  params: 
#    1: l_prog: The program that shall be checked
#    2: l_linuxpackage: The apt-package to install from
#    3: l_macospackage: The MacPorts package to install from
#
autoinstall() {
  local l_prog=$1
  local l_linuxpackage=$2
  local l_macospackage=$3
  echo "checking that $l_prog  is installed on os $os ..."
  which $l_prog 
  if [ $? -eq 1 ]
  then
    case $os in 
      # Mac OS
      Darwin) 
        echo "installing $l_prog from MacPorts package $l_macospackage"        
        sudo port install $l_macospackage
      ;;
      # e.g. Ubuntu/Fedora/Debian/Suse
      Linux)
        echo "installing $l_prog from apt-package $l_linuxpackage"        
        sudo apt-get install $l_linuxpackage
      ;;
      # git bash (Windows)
      MINGW32_NT-6.1)
        error "$l_prog ist not installed"
      ;;
      *)
        error "unknown operating system $os" 
    esac
  fi
}

# global operating system variable
os=`uname`

# first set 
#  eclipse_proc - the name of the eclipse process to look for
#  eclipse_app - the name of the eclipse application to start
case $os in 
    # Mac OS
    Darwin) 
      eclipse_proc="Eclipse.app" 
      eclipse_app="/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse"
      ;;
    # e.g. Ubuntu/Fedora/Debian/Suse
    Linux)
      eclipse_proc="/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar"
      eclipse_app=`which eclipse`
      ;;
    # git bash (Windows)
    MINGW32_NT-6.1)
      eclipse_app=`which eclipse`
      error "$os not implemented yet"
      ;;
    *)
      error "unknown operating system $os" 
esac

# check that pgrep is installed or install it
autoinstall pgrep procps

# check whether eclipse process is running
# first check that we only find one process
echo "looking for $eclipse_proc process"
pgrep -fl "$eclipse_proc"
# can't use -c option on MacOS - use platform independent approach 
#eclipse_count=`pgrep -cfl "$eclipse_proc"`
eclipse_count=`pgrep -fl "$eclipse_proc" | wc -l | tr -d ' '`

# check how many processes matched
case $eclipse_count in
  # no eclipse - do nothing
  0) ;;
  # exactly one - offer to kill it
  1) 
     echo "Eclipse is running - shall i kill and restart it with -clean? y/n?"
       read answer
       case $answer in
         y|Y) ;;
           *) error "aborted ..." ;;
       esac
     echo "killing current $eclipse_proc"
     pkill -f "$eclipse_proc"
     ;;
  # multiple - this is bogus
  *) error "$eclipse_count processes matching $eclipse_proc found - please adapt $0";;
esac

tmp=/tmp/eclipse$$
echo "starting eclipse cleanly ... using $tmp for nohup.out"
mkdir -p $tmp
cd $tmp

# start eclipse with clean options
nohup $eclipse_app -clean -clearPersistedState&
Wolfgang Fahl
sumber
1
Terima kasih! ini adalah pendekatan yang lebih baik daripada hanya menghapus seluruh folder .metadata. itu bekerja dengan sempurna
Jakob
1
Jauh lebih baik. Membantu Kepler di Mac OS X Mavericks
Robert Sösemann
5
"Eclipse -clean -clearPersistedState" ini membantu saya, terima kasih!
Michal
2
-clean -clearPersistedState bekerja untuk saya di Aptana Studio 3 pada kemenangan 7
Lorenz Haase
2
eclipse -clean -clearPersistedState Bekerja di Kepler Win 7
Yitzchak
37
./eclipse -clean -refresh

seperti disebutkan dalam komentar oleh sulai 20 Desember '12 pukul 12:46, itu berhasil bagi saya.

Namun, di Mac OS X, saya harus mencari cara untuk mengakses ./eclipse

Berikut solusinya:

cd Eclipse.app/Contents/MacOS/

Terima kasih komentar Andrew untuk posting ini: https://stackoverflow.com/a/1783448/2162226

Gene Bo
sumber
2
Saya harus membuka ruang kerja baru terlebih dahulu (saya menamakannya tes) menggunakan -clean -refresh. Dan ketika Eclipse (dalam kasus saya itu adalah GGTS) ​​dibuka, saya memilih File> Switch Workspace dan kembali ke ruang kerja yang awalnya menyebabkan masalah pembekuan.
pm_labs
Di Eclipse Luna aplikasinya sebenarnya hanya file, tidak perlu cd ke folder tersebut. Hanya menjalankannya ./eclipse -clean -refreshuntuk saya
Sirene
20

Solusi terbaik yang saya temukan adalah menghapus file ini: workspace / .metadata / .plugins / org.eclipse.e4.workbench / workbench

pengguna1252459
sumber
2
Dalam gerhana nila. Coba rm workspace / .metadata / .plugins / org.eclipse.ui.workbench /
Gere
1
Ini menyelesaikan masalah ini untuk saya dengan TIBCO BusinessWorks Design Studio pada Windows 7.
Alex Beynenson
di MacBook pro 12 "saya, solusi ini bekerja paling baik untuk saya
ironmantis7x
12

tidak perlu menghapus seluruh metadata. hanya mencoba menghapus .snap file di bawah org.eclipse.core.resources di folder kerja mantan Anda.

workspaceFolder.metadata.plugins \ org.eclipse.core.resources

pengguna742102
sumber
Menghapus file yang satu ini berhasil bagi saya hampir setiap kali Eclipse macet saat startup. Terima kasih!
Joseph
menghapus file .snap bekerja untuk saya untuk Eclipse Mars - 4.5.1 (di Mac El Capitan)
hashcoder
Bekerja untuk saya dengan JBoss Developer Studio 10
Thomas
11

Saya menyelesaikan menghapus * .snap dari dir ruang kerja (dan semua subdirektori):

metadata \ .plugins \ *. snap

lujop
sumber
1
Ini menyelamatkan saya dari kehilangan semua pengaturan saya!
tprk77
8

Pertanyaan yang cukup lama tetapi jawaban paling sederhana belum diposting.
Ini dia:
1) Dalam [workspace]\.metadata\.plugins\org.eclipse.e4.workbench hapus workbench.xmi file tersebut.
Dalam kebanyakan kasus, itu cukup - coba muat Eclipse.
Tetap saja Anda harus mengkonfigurasi ulang pengaturan perspektif spesifik Anda (jika ada)

2) Sekarang mendapatkan masalah dengan proyek pembangunan yang bekerja dengan sempurna? Berdasarkan pengalaman saya, langkah-langkah berikut membantu:
- hapus centang Proyek-> Bangun secara otomatis
- beralih ke perspektif Java (jika belum): Jendela -> Buka perspektif -> Java
- cari tampilan Masalah atau buka: Jendela -> Tampilkan tampilan -> Masalah
- klik kanan pada grup masalah dan pilih Hapus . Pastikan untuk menghapus kesalahan Lint
- bersihkan ruang kerja: Proyek -> Bersihkan ... dengan opsi Bersihkan semua proyek
- centang Proyek-> Bangun secara otomatis
- jika masalah tetap ada untuk beberapa proyek: klik kanan proyek, pilih Properti -> Androiddan pastikan Target Bangun Proyek yang sesuai dipilih

3) Itu selalu cukup bagi saya. Tetapi jika Anda masih mendapatkan masalah - coba rekomendasi posting @george

sberezin.dll
sumber
Terima kasih! Tidak ada yang berhasil selain menghapus workbench.xmi
Cukup Craig
6

Prosedur berikut berfungsi pada MacOS (Mavericks) dan Eclipse Luna 4.4.1 saya:

Hapus file .snap di bawah jalur "workspaceFolder" .metadata.plugins \ org.eclipse.core.resources \

Jika Anda tidak tahu cara menavigasi ke folder ini di Mac, tekan Cmd + Shift + G (Masuk ke folder) dan ketik alamat lengkap yang ingin Anda navigasikan.

pengguna3087315
sumber
3

menghapus ruang kerja / .metadata / .lock dan memulai gerhana dengan -clean -refresh berhasil untuk saya.

Nicolas Robert-Dehault
sumber
2

Anda harus menghapus folder org.eclipse.e4.workbench di dalam metadata.plugins \ yang dapat Anda temukan di folder ruang kerja Anda. Menghapus folder ini menyelesaikan masalah bagi saya, semoga membantu orang lain!

Guillermo Zooby
sumber
0

Ada banyak kemungkinan alasan untuk perilaku semacam ini. Selain menjalankan dari prompt shell seperti yang Anda miliki, ada baiknya mencari petunjuk di file log ruang kerja Anda, yang merupakan file .metadata / .log di bawah direktori ruang kerja Anda — NPE yang muncul untuk Anda sepertinya harus lakukan dengan kode logging itu sendiri, tetapi log masih dapat membantu menentukan apa yang terjadi sebelum kesalahan.

Pencarian web untuk pesan yang Anda temukan sering kali menghasilkan saran untuk menghapus berbagai direktori atau file dan memulai lagi. Terkadang saya bisa menghapus bagian .metadata / .plugins / org.eclipse.ui.workbench / workbench.xml, untuk solusi yang tidak terlalu merusak.

Michael Scheper
sumber
0

Masalah dengan menghapus file dalam direktori .metadata adalah Anda harus memulai meja kerja Anda dari awal. Jadi, mungkin perlu beberapa saat untuk memulihkan semua proyek Anda, terutama jika Anda memiliki beberapa di antaranya. Mengembalikan .metadata dari cadangan hanya dengan mengganti file yang ada dengan yang dicadangkan lama berfungsi untuk saya.

lulan
sumber
0

Mungkin juga membantu untuk mencoba memuat dan menyimpan ruang kerja dengan versi gerhana yang lebih baru:

Saya menggunakan eclipse 3.8. Saat memulai layar splash akan menggantung. Tidak ada pesan kesalahan dalam log. Yang membantu adalah membuka ruang kerja dengan eclipse 4.2.2. Setelah membuka dan menutup ruang kerja, saya bisa memuatnya lagi dengan 3.8.

e1i45
sumber
0

Setelah beberapa penyelidikan tentang tanggal file, saya memecahkan masalah yang sama (yang merupakan masalah berulang secara acak pada Kepler saya) dengan hanya menghapus file berikut di ruang kerja lokal saya: .metadata.plugins \ org.eclipse.jdt.core \ variableAndContainers.dat

dengan dampak yang dapat diabaikan pada pemulihan ruang kerja.

Saya harap ini dapat membantu orang lain ...

rpaulin56.dll
sumber
0

Di ruang kerja Anda, Anda akan menemukan nama folder tersembunyi .metadata di mana Anda akan menemukan folder tersembunyi lain ".mylyn", hapus dan kosongkan tempat sampah Anda, buka task manager, hentikan proses Eclipse dan mulai lagi Eclipse kali ini akan berfungsi.

Nikmati!

Faakhir
sumber
0

Inilah metode yang tidak terlalu merusak yang berhasil untuk saya:

Saya menggunakan mesin Windows dengan salinan Spring Tool Suite (ekstensi Eclipse) yang saya jalankan dari direktori acak. Dalam baris perintah saya prompt, saya harus menavigasi ke direktori yang berisi saya STS.exedan menjalankan: STS.exe -refresh.

Setelah itu, saya dapat membuka Eclipse saya dengan cara biasa (melalui ikon bilah tugas yang disematkan).

Xchai
sumber
0

Dapatkan salinan cadangan folder .metadata / .plugin / org.eclipse.core.resources, lalu hapus folder tersebut dan luncurkan gerhana. Itu seharusnya meluncurkan ruang kerja, tetapi semua proyek akan hilang karena org.eclipse.core.resources menyimpan daftar semua proyek.

Selanjutnya, tutup eclipse dengan benar dan salin kembali org.eclipse.core.resources dari cadangan ke folder .metadata / .plugins / menimpa yang sudah ada.

Gerhana terbuka dan semuanya akan berfungsi dengan baik dengan semua proyek Anda kembali normal.

Rasoul
sumber
0

Eclipse pembekuan saat startup - sebelum memuat ruang kerja jawaban yang sangat bagus di posting ini. mengulangi jawaban yang berhasil untuk saya

Di direktori ruang kerja Anda, lakukan langkah-langkah berikut:

cd .metadata / .plugins

mv org.eclipse.core.resources org.eclipse.core.resources.bak

Mulai gerhana. (Seharusnya ini menunjukkan pesan kesalahan atau ruang kerja kosong karena tidak ada proyek yang ditemukan.)

Tutup semua tab editor yang terbuka.

Keluar dari gerhana.

rm -rf org.eclipse.core.resources (Hapus direktori yang baru dibuat.)

mv org.eclipse.core.resources.bak / org.eclipse.core.resources (Pulihkan direktori asli.)

Mulai gerhana dan mulai bekerja. :-)

Jawaban oleh CharlesB

Aparna
sumber
-1

Tidak ada solusi yang membantu saya untuk kasus saya.

Saya menemukan solusi yang berfungsi. Saya membaca bahwa ini terjadi ketika plugin ADT tidak diperbarui dengan benar di Eclipse.

Solution
From Eclipse. . .
1. Go to Help Tap
2. Click Check for Updates

Perbarui semuanya dan whoa! Tidak lagi berhenti saat memulai Eclipse!

coolcool1994
sumber
-1

Saya tidak mencoba semua ini. Saya memulai ulang dengan laptop / mesin. Dan semuanya kembali normal setelah itu.

Puneet
sumber