Where does eclipse store information about open perspectives etc? - eclipse

After a recent upgrade to eclipse Juno, I have a problem with eclipse no longer being able to remember certain settings across restarts and workspace switches. Things like which perspectives were open, certain settings like "[x] Open Dashboard" (spring ide) seem to revert to their factory settings whenever eclipse is restarted.
I use Ubuntu and for historical reasons I maintain my eclipse installation in /opt/eclipse. The installation is owned by root, and apart from some issues with upgrades, this has not actually been a problem - until the Juno release.
I have tried chown -R myself:myself on the eclipse installation directory, and I have verified that all files are indeed editable by my own user. Still, the perspectives seem to reset.
Is there any other place where eclipse stores this information, which might still be owned by root?

Information about perspectives is stored in < workspace>\.metadata\.plugins\org.eclipse.e4.workbench\workbench.xmi
Keep this file backed up if you use complicated customized perspectives.
P.S. It's also useful to know that deleting this file may solve the problem when Eclipse doesn't start (see also here)

That information is kept in the .metadata directory in each workspace root directory.

Two solutions:
MENU -> File -> Switch workspace -> Other -> Copy Settings of
Workbench Layout
Working Sets
Copy/backup and replace following folder to new created Workspace.
[workspace]/.metadata/.plugins/org.eclipse.ui.workbench/
[workspace]/.metadata/.plugins/org.eclipse.core.runtime/.settings/
Personally I prefer (2).
The above answer is credited to #Ischin, in the following reference...

Related

Where does Eclipse store the info about which workspace to start up with?

When I launch Eclipse it starts with one of the workspaces I created and selected "don't ask again" (standardly, Eclipse asks about which workspace to start with during the startup).
So it must store somewhere which workspace to use. Where does it store this piece of information?
In
$HOME/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/.settings
there is a file
org.eclipse.ui.ide.prefs
where it is stored.
With Eclipse Juno, I can see this information in:
eclipse\configuration\.settings file.
I guess you are looking for RECENT_WORKSPACES and SHOW_WORKSPACE_SELECTION_DIALOG vars.
The settings have changed since this question was posted, as newer versions of Eclipse have been released.
With Eclipse Luna, navigate to $ECLIPSE_HOME/eclipse/configuration/.settings and the file org.eclipse.ui.ide.prefs contains settings like this (Windows file configuration shown):
MAX_RECENT_WORKSPACES=5
RECENT_WORKSPACES=C\:\\src\\eclipse-workspaces\\luna\\MyApp\nC\:\\src\\eclipse-workspaces\\luna\\MyOtherApp
RECENT_WORKSPACES_PROTOCOL=3
SHOW_WORKSPACE_SELECTION_DIALOG=true
eclipse.preferences.version=1
Each entry in RECENT_WORKSPACES appears to be delimited by \n with no spaces. Whenever I manually shuffle my workspaces around (which is rare, but it happens), I've had great success hand-editing this file, saving it, and having the new paths show up just fine in the Workspace Lancher/Select a Workspace dialog.
You have eclipse configuration files in "eclipse_home"/configuration and the one you may looking for is in settings directory : org.eclipse.ui.ide.prefs
I was facing an issue with Spring Tool Suite 4. The workspace used to give an error and I wasn't able to select other workspace also. With the help of some answers already given, I could locate the configuration in $ECLIPSE_HOME\sts-4.7.1.RELEASE\configuration.settings\org.eclipse.epp.mpc.ui.prefs
I removed RECENT_WORKSPACES property (after you try to restart, it adds default entry again) and changed
SHOW_WORKSPACE_SELECTION_DIALOG=true
STS started showing workspace selection dialog again.
If Eclipse has been installed with ubuntu-make, the file location is ~/.local/share/umake/ide/eclipse-jee/configuration/.settings/org.eclipse.ui.ide.prefs.

How to access the same eclipse workspaces from different OSs?

I have couple of different OSs installed. When I try to start eclipse in another OS eclipse starts complaining about workspace being used by 'another eclipse instance'. In case you don't know eclipse uses .lock files for that.
How to fix this?
I see a couple of possible ways to deal with this problem:
Disable .lock file check (It can cause some problems if opening workspace in 2 eclipses at the same time)
To make an empty 'workspace' just to make eclipse happy about all that settings and .metadata and .locks and keep projects elsewhere.
Removing .lock file every time I boot another OS. But what if I'll make a new workspace?
Is there a standard (or just better) solution of this problem?
If you exited Eclipse cleanly, then it should not complain about the Workspace being used.
Or do you want to access a Workspace with multiple Eclipses simultaneously?
UPDATE: Anyway I did this on a Mac, using the same Workspace on a FAT32 partition from OSX, Ubuntu and Windows, and I didn't encounter many problems. Of course remember to set the file encoding and line termination setting project or Workspace wide!
Eclipse workspaces are not designed or intended to be shared across different machines (nor across different operating systems). Trying to do so is certain to cause headaches and possibly even corruption of the workspace. There are things like absolute file paths (and other artifacts) embedded into workspaces that simply are not portable.
The better approach is to locate the projects elsewhere in the file system outside of the workspace; that way you can have multiple workspaces "contain" the project(s). Creating such a project is easy from the project creation wizards (a checkbox labeled like "Use default location" that needs to be un-checked, and an accompanying field that is filled in with the desired files system location). From another workspace, use File > Import > Existing Project Into Workspace to get the project in.

Eclipse: All my projects disappeared from Project Explorer

It seems like all my projects (except one) disappeared from the view Project Explorer.
I'm using Eclipse Java EE IDE for Web Developers.
Version: Helios Service Release 2
Build id: 20110218-0911
Note: all the projects are present on the file system.
How to bring them back? Any ideas?
This happened to me. I'm still not sure how, but the reason was that my workspace meta data had become corrupted, probably due to Eclipse being improperly shutdown. The solution, as explained here, is to:
Note, steps 2 & 3 are optional if Eclipse isn't crashing, but just not showing any projects.
Close Eclipse.
cd /home/user/workspace/.metadata/.plugins
mv org.eclipse.core.resources org.eclipse.core.resources_bak
Start Eclipse
Do File->Import
General->Existing Projects into Workspace
Click the "Select root directory" field and browse to each subfolder in your workspace folder, and import.
For me, this was very tedious, since I had several dozen projects in my workspace, but it's the only solution I found short of restoring my entire workspace from a backup.
Edit: This answer is now quite old, and better solutions may now exist. Although I haven't had need to try it, I recommend attempting #antonagestam's solution first, as others have suggested it may be faster and more effective.
Edit: Since it's fairly simple, I'd recommend trying antonagestam's solution first. However, this problem recently re-occurred for me, and that solution did not work in my case. But neither did it interfere with this solution.
I had the same problem in Aptana, all of a sudden my projects were gone. Solved it by going to the drop-down menu in Project Explorer and going Top Level Elements -> Projects.
Go to
File --> Import --> General --> Existing Project into Workspace
Then,
In Root Directory Enter the workspace path where all your projects saved & click refresh as below
And Click Finish
I was having the same problem for Android projects in Eclipse. This link was very helpful in restoring the missing projects.
Go to 'File->Import->General->From Existing Project'.
Select the root folder to the Workspace.
Click on the 'Refresh' button.
Select the required projects and click 'Finish' button.
I had the same problem in Luna, Suddenly my projects were gone in start-up.
I solved this by select Deselect working set option in the drop-down menu in Project Explorer.
Note: I post this answer even this is not a right answer for this question.
Since I search for Luna and came here,while trying with discussed things I was find this solution. This may help others.
Click on Windows > Open Perspectives > java
, Press Ok. Project Explore will come back on screen..
My solution is
open view menu and select "Top Level Elements" and set "Projects"
If any of the previous methods don't work for you then delete your old workspace, create a new workspace and put it by default. You can do this by launching Eclipse twice - the second time it asks you for the workspace ;). Then re-import all your projects there and say "problem, goodbye".
Mona is correct - Make sure that you have the task list set to show ALL as the image shows. Click the arrow to the left of the project if you want to re-factor your filter. Reset your perspective if you do not see the task list.
Today 22-03-2016, I check again this question and using ECLIPSE MARS I solved with:
Having Eclipse opened, go on FILE -> RESTART
Go on same workspace and I have all project on "PROJECT EXPLORER"
Sometime also this operation, will solve (Clicking on Projects dor see all project!!)
So Other solution is:
if you use the "Task List" view of Eclipse, it will sometimes try to hide files or projects that it thinks are not associated with a given task (i.e. any file that was not opened while you had a certain task selected as the current task). If you want Eclipse to stop hiding files
in that case, you can just delete all tasks.
Or you may also restart your eclipse and by just closing the project and then opening it again (from the right mouse click context menu) the files will be restored.
If that doesnt get your projects back then check the "filters option" (Click on right corner of Project Explorer tab and open context menu. Select Filters option from menu) and make sure that your projects type isnt checked.
you should check the active Working Set - make sure it is off.
When this happened to me I had somehow set the Project Explorer to only display Working Sets. I had none, so nothing was displayed.
To fix it, I went to the Project Explorer View Menu (next to the Minimize and Maximize icons in the Project Explorer), Top Level Elements -> Projects.
Thanks to #antonagestam for pointing me in the right direction.
It seems it happens to us all. I was happily hacking away at javascript, nowhere near all the nasty hibernate java stuff, and boom, "cant find org.jboss.logging.BasicLoging".
I havent touched anything!.
After an hour or so of trying to make that appear, restarting servers, mysql, eclipse, adding jars that weren't needed before,I deployed the fix all solution, the off button.
Then zap, no project.
(I am still none the wiser as to why calling Configuration() should now require jboss-logging...jar, maybe I needed it all along for when bad things happen)
My input is
use git, keep as little of your stuff in the eclipse workspace area as possible. Then just import project from existing git repo when eclipse loses it's marbles.
I also lost my server config. it's there but eclipse insists there no server config stuff and bombs. So make another one, I've expressed my feelings about eclipse in my new server name, and copy your apache xml configs (workspace/Servers/I_Love_Eclipse) over from the original perfectly good directory.
Not sure how/why, but this happened to me once when I added a task to Mylyn. Seemed that mylyn was filtering my projects. When I deleted the task they all came back.
None of the answers provided here worked for me. My Enterprise Explorer was completely grey and I couldn't even import or reimport projects.
In my .metadata.log I saw this error:
assertion failed: working set with same name already registered
So I deleted these file:
.metadata.plugins\org.eclipse.ui.workbench\workingsets.xml
Now I can see all my projects. I didn't have to add them back again.
I found a solution that worked better for me. Under my home folder I found a workspace/.metadata folder. I copied this folder into my eclipse workspace, replacing the .metadata folder that had been there. When I started Eclipse everything was back to the way I had left it - all projects present, all open files were still open, etc. Just like nothing had happened! I'm using Neon.
As a preliminary (before reimporting everything), here is a solution to recover working sets in which project were (if any).
I had more than 100 projects and each was in one of 14 working sets.
If your top level elements changes (accidentaly or not if it is a bug) from "Working set" to "Projects", you only see projects that are NOT in a working set, and if, as I do, you don't have any projects outside a working set, you think all is lost because you cannot see anything (blank package explorer).
So the solution is now obvious: click on the top left small white triangle MENU, than select "Top level elements", than select "Working sets".
You also have the possibility to rearrange the working sets list items.
Hope it helps
Unfortunatly the working sets were empty after the recovery, but at least I
recovered their names.
Config: Eclipse Oxygen.2 Release (4.7.2) with Java 1.8 on Windows 10.
Got this issue on returning to an Eclipse project on a VM after leaving it untouched for maybe a couple of weeks.
I started to apply the accepted answer, but when I got to the step of renaming the folder and had exited Eclipse, I saw there was an instance of Eclipse still running. I realized Windows had for some reason started a second instance of Eclipse when I hit the taskbar button. The second instance had been unable to access the workspace while the first instance was using it.
Once I undid my folder rename, and closed and restarted the original instance of Eclipse, I was able to use File->Switch Workspace to get my normal workspace back.
Solution that Cerin provide, importing each time that this problem happens, could be boring.
So I've implemented a script that control if workspace setting exits: if not, restore it to default.
I have an eclipse shortcut icon on the top panel that execute:
/opt/eclipse/checkWorkspace && /opt/eclipse/eclipse
Script checkWorkspace is the seguent:
#!/bin/bash
ECLIPSE_CONFIG_PATH="/opt/eclipse/configuration"
ECLIPSE_CONFIG_FILE="config.ini"
ECLIPSE_CONFIG_SETTING="osgi.instance.area.default"
DEFAULT_WORKSPACE_PATH="#user.home/workspace"
ECLIPSE_LOG="/var/log/eclipse.log"
cd ${ECLIPSE_CONFIG_PATH}
function sedeasy {
sed -i "s/$(echo $1 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/$(echo $2 | sed -e 's/[\/&]/\\&/g')/g" $3
}
WORKSPACE_EXISTS=$(cat ${ECLIPSE_CONFIG_FILE} | grep ${ECLIPSE_CONFIG_SETTING})
# If workspace setting doesn't exists
if [ -z "$WORKSPACE_EXISTS" ]; then
echo "worskspace setting not exists, resetting to default." >> ${ECLIPSE_LOG}
newConf=${ECLIPSE_CONFIG_SETTING}"="${DEFAULT_WORKSPACE_PATH}
echo ${newConf} >> ${ECLIPSE_CONFIG_FILE}
else
# if setting exist but it is empty
vals=(${WORKSPACE_EXISTS//=/ })
length=$(echo ${#vals[#]})
if [ "${length}" -lt 2 ]; then
newConf=${ECLIPSE_CONFIG_SETTING}"="${DEFAULT_WORKSPACE_PATH}
confToReplace=$(echo ${vals[0]})
sedeasy ${confToReplace} ${newConf} ${ECLIPSE_CONFIG_FILE}
echo "worskspace exists but is empty, resetting to default." >> ${ECLIPSE_LOG}
else
echo "Worskspace already set:" "${vals[1]}"
fi
fi
Maybe could be semplified, but works.
I tried many solutions. I found mine in the drop down menu of the Entreprise Explorer:
- Deleting org.eclipse.core.resources has no effect.
- "Top Level Elements -> Projects" was already checked for me; swtiching with Documents has no effect.
- Selecting all extensions in the filter option of the drop down menu has no effect at first sight, maybe it solve part of the problem.
The solution come from "Unselecting documents" (third choice in the Entreprise Explorer drop down menu). I think that choice reset the filtering of documents displayed in the Explorer.
Hope it'll helps
JN Gerbaux
Tedious but it worked for me (Kepler):
Using the OS zip utility, zip everything below the project workspace folder to a zip file, to be placed in a separate directory (will use c:\tmp\workspace.zip as an example).
Unzip workspace.zip to the c:\tmp directory. Assume there's a project folder called Project1
a. Ensure all the files in Project1 have Full Control permissions for Everyone or at least 777 permissions.
Remove all the project folders in the Eclipse workspace.
Recreate each project one by one according to its original type (Java, Dynamic Web, etc.). (Will use Project1 as an example.) Do not add anything.
In Eclipse, do File -> Import -> File System. Then select c:\tmp\Project1 as a source
Select the workspace Project1 as a destination. Do not overwrite any file.
In Eclipse, refresh the project and test it. It should work.
Also had this Problem.
My Solution was to uncheck the Box PyDev: Closed Projects, even if those hidden Projects are PHP and NOT Python Projects. (Strange BUG in Eclipse/Aptana???)
Be aware that even "Closed Projects" (a Topic above Pydev closed projects) is also unchecked. So you have to uncheck both Settings.
this: eclipse shows only "open projects" in project explorer
All of my projects were closed and I had hid the closed projects in the settings.
So to open projects go to top right view menu, and uncheck Closed Projects option. Assuming it is checked already.
Do the following steps
File --> Import --> Existing Projects into Workspace
Select the root directory as ur old root folder
Finish.
Yahoo.. There is ur old projects again in ur project explorer
1) File > import > Existing projects into workspace
2) Choose your workspace folder
3) select all of your projects
4) finish
All are OK with above way !!!
File - Import - Existing projects into workspace - browse - choose your workspase - done!
If Eclipse was killed during a shutdown, the projects database may become corrupted (the project database is normally located in: workspace/.metadata/org.eclipse.core.resources/.root/1.tree).
A message like this will be logged in Workspace/.metadata/.log:
!MESSAGE Could not read metadata for '.../.metadata/.plugins/org.eclipse.core.resources/.root/.markers'.
The data is lost. You need to import your projects again (File->Import ->
General->Existing Projects into Workspace).
The list of projects that were in the workspace can still be seen in .metadata/org.eclipse.core.resources/.projects/.
Projects located outside the workspace will have a .location file with the path to the project.
I also had the same problem.
file>restart.
Projects and modules appeared after restarting the eclipse, but faced new error;
An internal error occurred during: "AppXray Indexing...". java.lang.NullPointerException.
So it's good to be on safe side, import the project again in a new workspace.
if you go to Quick Access and type in Projects you will get it your projects back.

Why does the Eclipse Package Explorer show the projects from two different workspaces on my Mac?

I've discovered a curious thing on my Mac. At some point I apparently created two different Eclipse workspaces, one in /Users/username/workspace and the other in /Users/username/Documents/workspace (this may have happened as a result of some troubleshooting a while ago). I never knew until now that anything was amiss because the contents of both workspace folders are visible in the Eclipse Package Explorer.
I only just noticed because I'm trying to use Mercurial from the command line and couldn't find the project folder to create a repository. After some cursing I found the other workspace. The other strange thing is that from Eclipse's perspective, projects from both workspaces appear to be housed in /Users/username/Documents/workspace, even though some projects are only in /Users/username/workspace.
I believe the problem itself is easily solved (import things from one workspace into the other) but I want to understand why it is happening, and haven't been able to find anything about it elsewhere. My suspicion is that this is being caused by metadata that is telling Eclipse about the workspaces in both locations, and / or some Mac file system magic. However, I'm not sure where to start looking. Where I should begin? What might be causing this?
First, I personally prefer Eclipse to present me with a combo-box allowing me to select the workspace to be opened. You can set it in the preferences, under General -> Startup and Shutdown -> Workspace.
If you prefer not to be asked, you can specify the workspace explicitly in the eclipse.ini file (inside the Eclipse.app package) by using the -data switch (more about Eclipse.ini: http://wiki.eclipse.org/Eclipse.ini#Mac_OS_X_Example, all the switch options are in the Eclipse help).
Projects are not required to be inside the workspace. I like storing my work outside the workspace, since I usually share projects between workspaces. When creating a project, you can specify a location which is different than the default location. You can see the location of the project by right clicking it in the Project Explorer and selecting Properties.

Specific plugins per workspace

I came across this post and wondered if there is a way to activate only a few of all of my installed plugins depending on the workspace I currently work in.
For example - If I organized my workspaces like this
/workspaces
/java
/jee
/php
...
I don't need the Android-Plugin if I'm working on my Java EE-Projects and so on.
I also came accross this, suggesting to deactivate some capabilities for each workspace. But this not an option, as apparently no plugin is registered as capability.
Thanks, m
Edit: BTW, I am using Eclipse 3.5 Galileo
Maybe you can achieve your goal but it needs lots of "customization work" so I would not do it for myself :)
Create a "minimal" Eclipse install with plugins you use all of your workspaces.
Create one dropins folder for every workspace and put all of your "workspace-specific plugins" into that folder.
Create an Eclipse shortcut for all workspaces and use something like "-data _workspacedir_ -vmargs -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=_dropindir_" in the shortcut.
Start eclipse with one of your new shortcuts.
Note that in this case you cannot switch workspace within Eclipse, you have to close the current one and start the new one using the corresponding shortcut.
UPDATE: I have found some Eclipse feature request for making this kind of setup easier if they will be implemented:
Software Update must allow to install plug-ins into extension location
Support for multiple bundle pools
You can use a different configuration folder for each Eclipse instance using the -configuration option when starting Eclipse.
On Windows, I would use a batch file (e.g. run-eclipse.cmd) which looks a bit like this (a bit different on Unix, more complex on OS X because of the app packaging):
eclipsec.exe -clean -configuration configs/%1/configuration
Execute it with your environment ID (e.g. run-eclipse.cmd java). I use eclipsec because I need the console output, but you can use the plain eclipse.exe executable. The -clean is not mandatory either.
Under my Eclipse installation folder, I will have a configs folder and under this folder I will have multiple configurations. Each config folder can have its' own plugins and folders. AFAIK, if you install plugins they will be installed in your configuration folder and not your main installation folder.
The structure you get is like this:
Eclipse Folder
plugins
features
configs
java
plugins
features
configuration
Eclipse plugins are expected to start only as needed, in a lazy manner. I'm not saying that all behave exactly that way, but if you write your own plugin, you'll see this is how the technology works, your plugin gets called only as needed.
So in Eclipse, if you configure your starting Perspective (Java for me) to have only the Views you need, the plugins that are used for other views should not be started.
To do this, take the view away and save your perspective (Windows - Save perspective as).
In addition, in Ganymede, in Windows - Preferences - General - Startup and Shutdown,
there is a list of plugins that should be started on startup, so you can edit that list.
I didn't try to see if this works per workspace though.
Although my solution won't let you install plugins per workspace but will solve the problem.
The best way i found to do this is using different eclipse copies:
Extract officialeclipse.zip to two different places and install plugins you like per eclipse.
A bit late answer but if you want to manage many workspaces shortcut the following tool is very simple and helpful : http://www.xdreamteam.ch/downloads/eclipselauncher/
I use it for sorting my projects by customers and workspaces, and it launch the right workspace with all the necessary configurations needed for each.