如何修改Eclipse位置以防止写入用户.主目录



我尝试了所有不同的设置,是的,我知道eclipse.ini和config.ini,也尝试了不同的命令行参数!什么都解决不了我的问题!

所有的尝试,仍然每次我运行eclipse.exe它想写到我的userhome即。eclipse和。p2文件夹。

我已经尝试了下面所有的设置,以及不同的组合:

-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

这没有帮助!它写入/e46/e46/p2文件夹,但是创建/写入c:usersmrsimplemind.eclipse & .eclipseextension & .p2即使我之前手动创建文件夹也无济于事。

现在有人成功地完全隔离eclipse配置输出了吗?

我实现这一点的唯一方法是通过改变user.home,但我不喜欢这个变通方法,因为在原始的"用户"中有东西。Home",在eclipse中需要,例如。ssh,。git,。m2 maven等。我不想为每个eclipse用户保留配置文件设置的副本。home

我只是想隔离eclipse,这应该是可配置的!我不喜欢输出给用户。首页这不是一个选择!我想控制eclipse在每个eclipse安装的文件夹中创建的内容。

(我只能从windows操作系统中判断,我不知道为什么Mac上的Eclipse在上面的设置下工作得更好)


我不使用omph安装程序,下面的一些评论是误导

我尝试解决这个问题的方法几乎成功了。这是否是你的答案将取决于你的最低可接受的质量水平。

  • 如果您试图阻止Eclipse IDE填满您的主驱动器,此技术将起作用(它对我有效)。无论Eclipse是通过Oomph安装还是从普通zip安装都不重要,因为在此解决方案中没有修改任何与Oomph相关的内容。
  • 如果需求是用户home p2文件夹可以完全删除,而Eclipse仍然可以在不重新创建该目录的情况下工作,不,我还没有能够实现。

我张贴这作为一个部分的解决方案,也许在希望别人可以建立在它找出一个更好的解决方案。显然,完美的解决方案是eclipse有一个可配置的下载位置,并且安装程序实际上只将所有软件安装到所选的位置,但这需要eclipse开发人员修复产品的"P2"组件。下面的内容只是一个变通方法。

策略

前提是下载池文件夹似乎总是硬编码到运行eclipse安装程序的用户的主文件夹下的配置文件中。这个解决方法的本质是在您选择的位置创建一个假的用户主文件夹,在配置文件中进行大量的查找和替换,然后强制Java系统属性使用该新文件夹作为"user"。

在Mint Linux上的Eclipse 4.7 Oxygen.3A上进行了测试。
需要Eclipse安装文件夹的广泛脑手术

  1. 将Eclipse安装在用户的主驱动器以外的其他地方。
    在本例中,Oomph安装程序将/media/LINAPPS/ubuntu-apps/eclipse-oxy作为安装目标,然后在安装过程中创建/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse
  2. 启动Eclipse至少一次,然后关闭它并确保Eclipse没有运行。
  3. 在Eclipse文件夹下创建一个新的假用户主驱动器文件夹。
    在这个例子中,我创建了eclipse-oxy/eclipse/fakeHome
  4. 从你的用户主目录复制整个(隐藏的)p2目录到新的fakeHome。
    eg cp -R /home/$USER/.p2 /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2
  5. 进入eclipse文件夹,在文本编辑器中编辑eclipse.ini。做以下两点改变:
    • --launcher.library之后的行设置为新位置中相对于eclipse文件夹的池的副本,例如:fakeHome/.p2/pool/…等等。
    • 在所有其他vm参数之后附加一个新的系统属性设置到文件的末尾,并设置user。Home到新的假用户主目录。
      示例:-Duser.home=/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome
    编辑文件eclipse/configuration/org.eclipse.update/platform.xml。找到第一个<site>条目,并将url属性更改为相对于eclipse文件夹的新池文件夹。eg: url="file:fakeHome/.p2/pool/"
  6. 编辑/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info文件,再次找到并替换所有指向用户home的p2文件夹的引用,并将其替换为fakeUser下的新p2文件夹。你可以在这里找到1000多个火柴来替换。它似乎又可以使这些相对于eclipse文件夹,所以路径"fakeHome/.p2/pool/....."将工作。
  7. 进入新建的/eclipse/fakeHome/.p2文件夹,编辑"pools.info"one_answers"profiles.info"两个文件。再次找到任何指向您的真实用户的引用,并将其替换为fakeUser文件夹的路径。在这两个文件中,为池位置使用完整的路径名(来自根目录)。
  8. 解包、编辑和重新打包最新的配置文件注册表。找到文件夹
    eclipse/fakeHome/.p2/org.eclipse.equinox.p2.engine/profileRegistry/_media_LINAPPS_ubuntu-apps_eclipse-oxy_eclipse.profile/。现在在该文件夹中找到最新的带时间戳的gz文件。例如,它可能被称为"1529736854441.profile.gz"。
    压缩那个。gz文件。编辑.profile文件,并再次用新的fakeUser文件夹替换任何提到您的真实用户家的内容。例如,在我的安装中,第一个属性设置之一必须更改为
    <property name='org.eclipse.equinox.p2.cache' value='/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2/pool'/>
    删除旧的gz文件,然后gzip配置文件到一个gz,所以它已经取代了旧的文件。
  9. 我还编辑了文件/eclipse/fakeHome/.p2/org.eclipse.equinox.p2.core/cache/artifacts.xml,并将存储库名称替换为对fakeHome内新位置的引用,但我不确定这对eclipse工作是否必要。
  10. 启动eclipse。
结果

完成以上操作后,我尝试从帮助菜单中添加安装新软件。在从Redhat和Spring下载了许多新插件后,新的fakeHome池占用了900MB,但原来的用户home池仍然不到400MB,这是eclipse刚安装时的大小。因此,它已经成功地移动了更新程序的下载缓存,并且在旧位置中没有文件得到更新,但是.p2下的两个目录似乎仍然有它们的时间戳。

如果有人发现这有用,或者想出如何改进它,请告诉我。

这适用于Windows 7, Eclipse Oxygen:

  • 安装Eclipse,但不要启动它
  • 编辑eclipse.ini,并在-vmargs下面添加一个条目,将用户home更改为共享文件夹:

-vmargs
-Duser.home=C:Development
  • 启动Eclipse。应该知道。"eclipse"、"。在共享文件夹中创建tools "等文件夹,而在用户文件夹下没有创建任何内容。

截至Eclipse Java 2019-06 for Windows 10 64位

我在下面添加了eclipse.ini:

—vmargs

-D" user.home = C: your_path_here"

.eclipse, .p2, &. tools出现在我启动eclipse之后,然后是close eclipse。

我不确定这些是何时写入新路径的,但它在我的Windows 10中工作。

您是否尝试在eclipse.ini下面添加以下行-vmargs:

-Dosgi.configuration.area=@user.home/.someFolder

将使用。somefolder而不是。eclipse或者

-Dosgi.configuration.area=C:path_to_desired_location.eclipseJAVA

最新更新