I have Eclipse installed on a removable drive that I take between my desktop and laptop. I have an old installation (Mars) that I installed ages ago by unzipping files. I have a newer installation (Neon) that I installed using the new Eclipse installer.
After upgrading both my computers to Windows 10 Anniversary Edition, both Eclipse installations continue to work when the drive is connected to the desktop machine. When I connect the drive to the laptop, however, the new Eclipse installation (Neon---the one installed using the installer) will not start and says:
The Eclipse executable launcher was unable to locate its companion shared library.
However the old installation (Mars---the one installed from unzipping an archive) still runs just fine.
What is the problem with the Neon installation on the laptop and how do I fix it?
Update: I looked in the eclipse.ini
file, and there is a --launcher.library
reference to a C:/Users/user/.p2/pool/plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.400.v20160518-1444
. The laptop (which is failing) has only org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
. But the desktop (where it is working) has both org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
and org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.400.v20160518-1444
.
So maybe somehow Eclipse updated its Equinox Launcher when the drive was attached to the desktop. Then when I attached the drive to the laptop, it referenced the updated launcher plugin, but the laptop didn't have the updated launcher.
This is a fine kettle of fish. I had no idea Eclipse was installing things in the user directory, outside the Eclipse installation directory. I guess that's one of the drawbacks of this newfangled launcher: it's not possible to use Eclipse on a shared drive.
How can I get Eclipse to install the launcher on the shared drive rather than in the system user home directory? Can I avoid this altogether if I install directly from zip files? How did Eclipse update this launcher in the first place without my knowing about it?
Update: Now I see that Eclipse also installed a org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
in the local plugins
directory (that is, relative to the executable on the drive). Why is Eclipse putting some things on the removable drive relative to the executable (as they should be), and other things in the system user directory (where I don't want them)? This is a mess. So much for having a self-contained Eclipse installation like I did for over a decade.
By default, Eclipse installer does use a shared "bundle pool" so that if you have multiple different Eclipse instances running, the various plugins they're using are only downloaded once. This usually saves network bandwidth and disk space. However, this bundle pool may probably be unable to work properly if the installation and bundle pool are on different drive (Especially if one of them is shared by multiple machines). You can report this limitation to http://bugs.eclipse.org .
As a workaround, for such custom installations, I would recommend that you skip the Eclipse installer, and get good old packages that will work just like Mars, everything in their own directory: https://www.eclipse.org/downloads/eclipse-packages/