web-dev-qa-db-ja.com

ワークベンチのロード時にEclipseがハングする

Eclipseがワークベンチのロードを停止します。すでに./Eclipse --cleanから始めてみました

コンソールから起動すると、次の例外がスローされます。

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)

Com.Android.ide.Eclipse.adtをロードすると停止します

私のワークベンチの何が問題になっていますか?

Eclipse startup screen

95
endian

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

以下を試してください:

  1. ローカルの。metadataフォルダーを削除しますworkspace(これが私にとってうまくいったことです)。正しく閉じられていないと、Eclipseが正常に起動しなくなる.LOCKファイルが含まれているようです。 Unixベースのシステムでは、コマンドラインで次のように入力できます。

    rm -r workspace/.metadata
    
  2. ホームディレクトリの。Eclipseディレクトリを削除します。 Eclipseを起動します。うまくいかない場合は、

  3. 別のユーザーアカウントでEclipseを開きます。ロードされる場合、問題はEclipseのインストールではなく、アカウントにあることがわかります。

145
george

http://off-topic.biz/en/Eclipse-hangs-at-startup-showing-only-the-splash-screen/ に示されている手順は私のために働いた:

  1. cd .metadata/.plugins
  2. mv org.Eclipse.core.resources org.Eclipse.core.resources.bak
  3. Eclipseを起動します。 (プロジェクトが見つからないため、エラーメッセージまたは空のワークスペースが表示されます。)
  4. 開いているすべてのエディタータブを閉じます。
  5. Eclipseを終了します。
  6. rm -rf org.Eclipse.core.resources(新しく作成されたディレクトリを削除します。)
  7. mv org.Eclipse.core.resources.bak/org.Eclipse.core.resources(元のディレクトリを復元します。)
  8. Eclipseを起動して、作業を開始します。 :-)

他の答え:

Eclipse -clean -clearPersistedState

言及されている-これは同じまたはさらに良い効果があるようです。

以下は、MacOS(Macportsを使用)およびLinux(Eclipse Equinoxを使用したUbuntuでテスト済み)のスクリプトで、実行中のEclipseをオプションで強制終了して開始します。スクリプトをニーズに合わせて調整することもできます。新しいプラットフォームを追加する場合は、この回答でスクリプトを編集してください。

#!/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&
91
Wolfgang Fahl
./Eclipse -clean -refresh

12:46の12月20日sulaiによるコメントで述べたように、それは私のために働いた。

ただし、Mac OS Xでは、。/ Eclipseに到達する方法を理解する必要がありました。

解決策は次のとおりです。

cd Eclipse.app/Contents/MacOS/

この投稿に対するAndrewのコメントをありがとう: https://stackoverflow.com/a/1783448/2162226

37
Gene Bo

私が見つけた最良の解決策は、このファイルを削除することです:workspace/.metadata/.plugins/org.Eclipse.e4.workbench/workbench

19
user1252459

メタデータ全体を削除する必要はありません。ワークスペースフォルダーのorg.Eclipse.core.resourcesの下にある。snapファイルを削除してみてください。

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

12
user742102

ワークスペースディレクトリ(およびすべてのサブディレクトリ)から* .snapを削除して解決しました。

metadata\.plugins\*。snap

11
lujop

かなり古い質問ですが、most simpleの回答はまだ投稿されていません。
ここにあります :
1) In [workspace]\.metadata\.plugins\org.Eclipse.e4.workbenchdeleteworkbench.xmiファイル。
ほとんどの場合それで十分です-Eclipseをロードしてみてください。
まだ特定のパースペクティブ設定を再構成する必要があります(ある場合)

2)完全に機能するプロジェクトの構築で問題が発生しましたか?私の経験では、次の手順が役立ちます:
-チェック解除プロジェクト->自動的にビルド
-Javaパースペクティブへの切り替え(まだでない場合):ウィンドウ->パースペクティブを開く-> Java
問題ビューを見つけるか開く):ウィンドウ->ビューを表示->問題
-問題グループを右クリックして、Deleteを選択します。 Lintエラーを必ず削除してください
-ワークスペースのクリーニング:Project-> Clean ...with optionClean all projects
-チェックプロジェクト->自動的にビルド
-一部のプロジェクトで問題が解決しない場合:プロジェクトを右クリックして、Properties-> Androidを選択し、適切であることを確認しますProject Build Targetが選択されています

---(3)それは私にとって常に十分でした。それでも問題が解決しない場合は、@ george投稿の推奨事項を試してください

8
sberezin

次の手順は、MacOS(Mavericks)およびEclipse Luna 4.4.1で機能しました。

パス「workspaceFolder」.metadata.plugins\org.Eclipse.core.resources \の下の.snapファイルを削除します。

Macでこのフォルダーに移動する方法がわからない場合は、Cmd + Shift + G(フォルダーに移動)を押して、移動する完全なアドレスを入力します。

6
user3087315

workspace/.metadata/.lockを削除し、-clean -refreshを指定してEclipseを起動すると、うまくいきました。

この問題が発生している可能性があります:

https://bugs.Eclipse.org/bugs/show_bug.cgi?id=357199

3
katsharp

ワークスペースフォルダーにあるmetadata.plugins \内のorg.Eclipse.e4.workbenchフォルダーを削除する必要があります。このフォルダを削除することで問題は解決しました。他の人の助けになることを願っています!

2
Guillermo Zooby

Windows 7でこの問題が発生したため、これが修正されました。

http://letsgetdugg.com/2009/04/19/recovering-a-corrupt-Eclipse-workspace/

cd〜/ Documents/workspace/.metalog/.plugins

rm -rf org.Eclipse.core.resources

1
Alok Omkar

.metadataディレクトリ内のファイルを削除する際の問題は、ワークベンチを最初から起動する必要があることです。そのため、特に多数のプロジェクトがある場合は、すべてのプロジェクトを復元するのに時間がかかる場合があります。既存のファイルを古いバックアップファイルに置き換えるだけで、バックアップから.metadataを復元することができました。

0
lulan

このような振る舞いには多くの理由が考えられます。シェルプロンプトから実行するのに加えて、ワークスペースディレクトリの下にある.metadata/.logファイルであるワークスペースログファイルの手がかりを探す価値があります。ロギングコード自体で行いますが、ログはエラーの前に何が起こっていたかを判断するのに役立ちます。

見つけたメッセージのWeb検索では、多くの場合、さまざまなディレクトリまたはファイルを削除して再起動するための提案が表示されます。ただし、破壊的でないソリューションのために、.metadata/.plugins/org.Eclipse.ui.workbench/workbench.xmlの一部を削除することもできました。

0
Michael Scheper

.metadata/.plugin/org.Eclipse.core.resourcesフォルダーのバックアップコピーを取得し、そのフォルダーを削除してEclipseを起動します。これでワークスペースが起動しますが、org.Eclipse.core.resourcesがすべてのプロジェクトのリストを保持しているため、すべてのプロジェクトは削除されます。

次に、Eclipseを適切に閉じ、org.Eclipse.core.resourcesをバックアップから.metadata/.plugins /フォルダーにコピーして、既存のフォルダーを上書きします。

Eclipseを開くと、すべてのプロジェクトで正常に動作するはずです。

0
Rasoul

ファイルの日付に関するいくつかの調査の後、ローカルワークスペースで次のファイルを削除するだけで、同じ問題(ケプラーでランダムに繰り返し発生する問題)を解決しました:.metadata.plugins\org.Eclipse.jdt.core\variablesAndContainers.dat

ワークスペースの復元への影響はごくわずかです。

私はそれが他の誰かに役立つことを願っています...

0
rpaulin56

これは私にとってうまくいった、あまり破壊的でない方法です:

ランダムディレクトリから実行しているSpring Tool Suite(Eclipseの拡張機能)のコピーを使用してWindowsマシンを使用しています。コマンドラインプロンプトで、STS.exeを含むディレクトリに移動し、STS.exe -refreshを実行する必要がありました。

その後、通常の方法でEclipseを開くことができました(ピン留めされたタスクバーアイコンを使用)。

0
Xchai

起動時にEclipseがフリーズする-ワークスペースを読み込む前 この投稿に対する非常に良い答え。私のために働いた答えを繰り返します

ワークスペースディレクトリで、次の手順を実行します。

cd .metadata/.plugins

mv org.Eclipse.core.resources org.Eclipse.core.resources.bak

Eclipseを起動します。 (プロジェクトが見つからないため、エラーメッセージまたは空のワークスペースが表示されます。)

開いているすべてのエディタータブを閉じます。

Eclipseを終了します。

rm -rf org.Eclipse.core.resources(新しく作成されたディレクトリを削除します。)

mv org.Eclipse.core.resources.bak/org.Eclipse.core.resources(元のディレクトリを復元します。)

Eclipseを起動して、作業を開始します。 :-)

CharlesBによる回答

0
Aparna

また、新しいEclipseバージョンでワークスペースをロードして保存しようとすると役立つ場合があります。

Eclipse 3.8を使用しています。スプラッシュ画面を起動するとハングします。ログにエラーメッセージはありませんでした。助けたのは、Eclipse 4.2.2でワークスペースを開くことでした。ワークスペースを開いて閉じた後、3.8で再び読み込むことができました。

0
e1i45

ワークスペースには、隠しフォルダー名.metadataがあり、別の隠しフォルダー ".mylyn"があり、それを削除してゴミ箱を空にします。

楽しい!

0
Faakhir