How to move Eclipse.app under /Applications on MacOS? - eclipse

I used the fancy new installer to install Eclipse Mars on my OS X box and since it was asking for a folder and had a lot of fiddly config details to set, I wasn't sure what it was going to do to my system so I created a new folder ~/Applications/Eclipse/ to put it in.
Fortunately it created an app package, Eclipse.app, so I wanted to move it into /Applications (out of my account folder into the common apps for all users of the box). So I dragged it (it's what you're supposed to be able to do, y'know).
DOH! That did not work. It crashes and crashes and crashes. Moving it back makes it happy again.
What would I need to do to move Eclipse.app, other than delete and reinstall and then reinstall all the plugins and SDKs I added?

The likely problem here is that Eclipse anticipates the directory structure around it, and fails when the actual directory structure doesn't match its expectations. The simplest solution is to create an alias (like a PC shortcut) in the Applications folder that links back to the application in the folder where it is installed by default.
To do this on a Mac, right click the application, which should be in the user root like so:
~/eclipse/java-mars/Eclipse.app
You should see the dropdown below. Click the "Make Alias" option to create an alias for Eclipse in the same folder. Then just rename this alias "Eclipse," and drag and drop it in Applications, where it should work just fine.

Looks like the installer puts a lot of files, including the actual plugins, into folders under the .p2 folder in your home directory. This is true no matter where you install eclipse, with the installer. So either other users would need at least read access to some locations in your account, or you moved your .p2 folder to a central location and changed the eclipse.ini file (embedded in a folder under the eclipse.app folder) to point to the correct location. If you leave the .p2 folder in your account, you'd still need to alter the myeclipse.ini file, as it uses relative paths to files.
For your situation, you might be better off using the standard installation method (unzipping the distribution file), moving the installation to /Applications.

Related

How modify Eclipse locations to prevent write to user.home directory?

I have tried all different settings, and yes, I m aware of eclipse.ini and config.ini and also tried different command line arguments! Nothing solved my problem!
All attempts and still each time I run eclipse.exe it wants write to my userhome i.e. the .eclipse and .p2 folders.
I have tried with all settings bellow among others, in different combinations too:
-Dosgi.user.area=file:/c:/eclipse-conf/e46
-Dosgi.configuration.area=file:/c:/eclipse-conf/e46
-Dosgi.instance.area=file:/c:/eclipse-conf/e46
-Declipse.p2.data.area=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.configurationFolder=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.installFolder=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.cache=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.roaming=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.cache.shared=file:/c:/eclipse-conf/e46/p2
This did not help! Well it writes to /e46 and /e46/p2 folder but it also creates/writes to c:\users\mrsimplemind\.eclipse & .eclipseextension & .p2
Even if I manually create the folders before it will not help.
Now please anyone here had success to fully isolate eclipse configuration output?
The only way I achieved this was by changing the user.home but I don't like this workaround as there are stuff in the original "user.home" that will be needed in eclipse, e.g. .ssh , .git , .m2 maven etc. I don't want to keep duplicates of profile settings for each eclipse user.home
I just want to isolate eclipse, this should be configurable! I don't like the outputs to user.home .. It is not an option! I want to have control of what eclipse creates in what folders, for each eclipse installation.
(I can only tell from windows os, I don't know how if Eclipse on Mac works better with the settings above)
I dont use OOMPH installer, some comments below are misleading
The method I have tried to solve this problem has been nearly successful. Whether this is an answer for you will depend on your minimum acceptable level of quality.
If you are trying to prevent your Eclipse IDE from filling up your home drive, this technique will work (it has worked for me). It should not matter if Eclipse was installed by Oomph or from a plain zip, as nothing Oomph-related is modified in this solution.
If the requirement is that the user home p2 folder can be completely deleted and yet Eclipse still works without recreating that directory, no I have not been able to achieve that yet.
I am posting this as a partial solution, perhaps in the hope someone else can build upon it to figure out a better workaround. Obviously the perfect solution would be if eclipse had a configurable download location and the installer actually installed all software to only the location selected, but that requires the Eclipse developers to fix the "P2" component of the product. What follows is only a workaround.
Strategy
The premise is that the download pool folder always seems to be hardcoded into the config files to be under the home folder of the user that ran the eclipse installer. The essence of this workaround is to create a fake user home folder in the location of your choice, do a massive find-and-replace in the config files, and then force the Java system property to use that new folder as "user.home" which fools Eclipse into using it for its downloads.
Method
This was tested on Eclipse 4.7 Oxygen.3A on Mint Linux.
Extensive brain surgery of the Eclipse installation folder is needed.
Install Eclipse somewhere other than your user's home drive.
In this example the Oomph installer was given /media/LINAPPS/ubuntu-apps/eclipse-oxy as the install target, which then creates /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse during the installation.
Start Eclipse at least once, then close it and make sure Eclipse is not running.
Create a new fake user home drive folder underneath the Eclipse folder.
In this example I created eclipse-oxy/eclipse/fakeHome
Copy the entire (hidden) p2 directory from your user home directory into the new fakeHome.
eg cp -R /home/$USER/.p2 /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2
Go to the eclipse folder and edit the eclipse.ini in a text editor. Make these 2 changes:
set the line after --launcher.library to be the copy of the pool in the new location relative to the eclipse folder, eg : fakeHome/.p2/pool/...etc...
append a new system property setting to end of the file after all the other vm arguments, and set user.home to the new fake user home directory.
eg: -Duser.home=/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome
Edit the file eclipse/configuration/org.eclipse.update/platform.xml. Find the first <site> entry and change the url attribute to be the new pool folder relative to the eclipse folder. eg: url="file:fakeHome/.p2/pool/"
Edit the file /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info and again find and replace all references to you user home's p2 folder with the new p2 folder under the fakeUser. You could find over 1000 matches to replace here. It again seems to be possible to make these relative to the eclipse folder, so a path of "fakeHome/.p2/pool/....." will work.
Go to the new /eclipse/fakeHome/.p2 folder and edit both of the files there "pools.info" and "profiles.info". Again find any reference to your real user home and replace it with the path to the fakeUser folder. Use the full pathname (from root) for the pool location in both of these files.
Unpack, edit, and repack the latest profileRegistry. Find the folder
eclipse/fakeHome/.p2/org.eclipse.equinox.p2.engine/profileRegistry/_media_LINAPPS_ubuntu-apps_eclipse-oxy_eclipse.profile/. Now find the latest timestamped gz file in that folder. For example it might be called "1529736854441.profile.gz".
gunzip that .gz file. Edit the .profile file and again replace any mention of your real user home with the new fakeUser folder. For example in my installation one of the first property settings had to be changed to
<property name='org.eclipse.equinox.p2.cache' value='/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2/pool'/>
Delete the old gz file, then gzip the profile into a gz, so it has replaced the old one.
I also edited the file /eclipse/fakeHome/.p2/org.eclipse.equinox.p2.core/cache/artifacts.xml and replaced the repository name with a reference to the new location inside fakeHome, but I am not sure this was necessary to get eclipse working.
Start eclipse.
Results
After doing the above, I tried to add Install New Software from the Help menu. After downloading lots of new plugins from Redhat and Spring, the new fakeHome pool occupies 900MB, but the original user home pool is still less than 400MB which is what it was as soon as eclipse had been installed. So it has been successful at moving the download cache of the updater and no files get updated in the old location, but two directories under .p2 still seem to have their timestamps touched.
If anyone finds this useful, or figures out how to improve it, please let me know.
This works on Windows 7, Eclipse Oxygen:
Install Eclipse, but DON'T launch it yet
Edit eclipse.ini and, underneath -vmargs, add an entry to change user home to be a shared folder:
e.g.
-vmargs
-Duser.home=C:\Development
Launch Eclipse. Should see ".eclipse", ".tooling", etc folders created in shared folder, and nothing created under your user folder.
As of Eclipse Java 2019-06 for Windows 10 64-bit
I added my eclipse.ini below:
-vmargs
-D"user.home=C:\your_path_here"
The 3 folders of .eclipse, .p2, & .tooling appeared after I started and then closed eclipse.
I am not sure when these are written into the new path, but it worked in my Windows 10.
Did you try adding the following line to eclipse.ini below -vmargs:
-Dosgi.configuration.area=#user.home/.someFolder
which will use .someFolder instead of .eclipse
or
-Dosgi.configuration.area=C:\path_to_desired_location\.eclipseJAVA

Update: Eclipse and one drive

I have a desktop and a laptop which i bring to uni. Is there a way to put eclipse workspace on One Drive (sky drive) and then be able to work on it from multiple computers? I have tried it but it seems to mess up the folders. I.e. the package folder is now a standard folder.
UPDATE:
I found this link but I'm not too sure it will work. Anyone willing to explain if this will work?
Here's the link: http://www.howtogeek.com/174765/how-to-sync-any-folder-with-skydrive-on-windows-8.1/
If you want to store the workspace there, you need to make sure that the project files such as .project and .classpath, which are automatically generated by Eclipse, are also stored. Otherwise, Eclipse won't recognize the folders as project directories.
Still even if you store all files you can encounter problems in some cases if you're using different versions of Eclipse across different computers, and with different plugins, features and so on. A simple solution is to also store the Eclipse installation itself so that you use the same Eclipse across all computers.
OneDrive does not (yet!) support syncing files that start with periods, like the .eclipse settings folders. Because of this you will not see those items sync over OneDrive.
Make NEW FOLDER in onedrive. Then run Eclipse with this folder. Run Eclipse with this folder in another computer.

Where does Eclipse store settings and plugins in userdir?

I've just installed a new Linux distro on my box and want to move my Eclipse home from the old /home/username/ to my new one. Because I changed the desktop, I don't want to copy all hidden folders from ~/. So which directories do I need copy in order to have all my installed plugins?
I've already copied ~/.eclipse/ and it definitely contains files related to the plugins but Eclipse won't load them. Any hints?
We've eventually found the directory containing all that stuff by accident. Somehow we broke it and Eclipse refused to start on my coworker's computer:-)
See ~/workspace/.metadata/.plugins or wherever your workspace resides.
As far as I know, Eclipse stores its plugins in its installation directory (eclipse). They might reside in eclipse/plugins or eclipse/dropins. You can copy the whole eclipse directory from your old box.

How to delete Eclipse completely (including settings and plugins) from Mac OS X?

My Eclipse with GAE broken and works strangely.
So I deleted Eclipse from Application folder, but there is garbage left. I re-downloaded fresh new eclipse, but it runs with old settings, and broken GAE structure remained.
How can I DELETE completely Eclipse from my Mac? (without any kind of settings/plugins/logs etc.)
Eclipse itself will be installed where you've unzipped the file you've downloaded. This directory contains Eclipse.app, configuration/, plugins/ and features/ (amongst others).
Your workspace/ directory (in your home directory by default) contains all your projects and various settings too, in workspace/.metadata/ (see dot files if you want to have a look). Deleting the workspace will delete your own project files of course, so you would need to make sure you have a way to restore them from a clean version (for example from a version control system if you're using one).
If you don't want to delete your entire workspace, it might be worth moving it away and then copying the projects back in, leaving the new workspace/.metadata/ clean, to see if this fixes your problem.
Add ~/Library/Caches/org.eclipse.platform.ide to the list
Im not sure if this is the right place for such kind of questions...But r u using any applications such as "app cleaner"?
if not try it... http://en.softonic.com/s/app-remover:mac

Sharing Eclipse directory on Dropbox between Windows and Mac OS X

This question was close to mine, but not quite.
I have a Windows desktop and a MacBook Pro. I'd like to be able to keep my Eclipse workspace in my Dropbox folder. The problem is that many project settings change between platforms: references to JREs, JDKs, and other libs.
Every discussion I've seen of this problem seems to suggest taking advantage of the source control system's ignore functionality, so that such-and-such file remains local-only and thus able to remain platform-specific. But when you're working with a real single shared folder, that class of solution doesn't apply.
Have you had luck working with a Java Eclipse project living in a single folder shared over the network, cross-platform?
I have my Eclipse workspace inside Dropbox with all my project folders within, but use the new-ish "Selective Sync" feature of Dropbox to make sure that the .metadata folder is not synced.
This means my Mac and Windows machines have their own .metadata folders but the project folders remain in sync.
Seems to be working so far...
Use source control with individual workspaces. By doing it this way you lose the capability of two developers making changes to the same file. You also run a higher risk of people stepping on each other. With Subversion (or others) source control is free and gives you traceability.
Perhaps the way to have less problems is just to share the source folder, neither workspace settings nor bin folder.
Just put your source folder in Dropbox.
Create the project on site1 and then:
Right click over the project, choose properties
--> Java Build path --> Source tab
--> Link source button
Then create a link to your source folder in Dropbox and assign it a name (e.g. src2)
Make the same for site2.
All your source files must be in your share source folder in Dropbox.
Of course you must configure on each site the settings like libraries and other stuff but this task is less frequently and perhaps desirable because you have two different environments.
For anyone else having trouble getting this to work, try File->Import->General->File System. Be sure to select Create links in workspace from the Advanced options. Seems like the cleaner solution and you can keep using your usual workspace.