我设法通过使用重现你的问题Oomph,解决问题的方法就是停止使用Oomph!既然你在OP中提到了它的用途,我去了Windows -> 首选项 -> Oomph -> 首选项记录器并检查了记录到用户.
接下来我更改了模板sysout打电话print()代替打印()。更改立即生效,并且(如预期)重新启动 Eclipse 后也生效。
然后我恢复了模板sysout通过点击恢复默认值,并且(正如预期的那样)它立即生效并且sysout生成的打印()。但是,重新启动 Eclipse 后,更改被撤消,并且sysout再次产生print()代替打印()!这种行为也是您在 OP 评论中报告的。
关于审查偏好记录器再次设置我注意到偏好自定义模板尽管我没有明确这样做,但已经被检查过:
显然,这就是导致用户设置在启动时实施的原因。我取消选中所有首选项,取消选中记录到用户并重新启动 Eclipse,并且sysout然后正确使用默认值打印()。所以我认为你的解决方案是取消选中记录到复选框偏好记录器.
最后一点是,Oomph 会准确记录 Eclipse 启动期间所做的事情,并将其记录到文件中\eclipse\configuration\org.eclipse.oomph.setup\setup.logEclipse安装目录下:
[2018-01-24 10:45:03] Workspace D:\OxygenWorkspace
[2018-01-24 10:45:03] Bundle org.eclipse.oomph.setup 1.9.0.v20171202-1121, build=3282, branch=f99b41819cc9f86beec6b54bf453173fc2d4acef
[2018-01-24 10:45:03] Bundle org.eclipse.oomph.setup.core 1.9.0.v20171202-1121, build=3282, branch=f99b41819cc9f86beec6b54bf453173fc2d4acef
[2018-01-24 10:45:03] Bundle org.eclipse.oomph.setup.p2 1.9.0.v20171202-1121, build=3282, branch=f99b41819cc9f86beec6b54bf453173fc2d4acef
[2018-01-24 10:45:03] Performing Preference /instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.text.custom_templates = <?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="java-statements" deleted="false" description="print to standard out" enabled="true" id="org.eclipse.jdt.ui.templates.sysout" name="sysout">System.out.print(${word_selection}${});${cursor}</template></templates>
请注意,上面的最后一行显示了正在设置的用户定义模板。