Mai*_*ian 30 eclipse linux workspace command-line kill
有没有办法从命令行干净地关闭Eclipse,以便保存文件和工作区?杀-3没有做任何事情.kill -1和kill -15(默认值)导致Eclipse突然弹出JVM终止弹出窗口.kill -9做同样的事情.
用例是我在装有Eclipse的机器上远程工作,我希望通过关闭Eclipse来节省内存,但我希望Eclipse先保存其状态.
我可以使用VNC或一些替代桌面共享软件,但这非常重,我更喜欢命令行解决方案.
编辑:系统信息:RHEL5.1使用GNOME 64位
pid*_*dge 42
我在gigi的回答和另一个问题的帮助下想出了这一点.您将需要包管理器中的wmctrl和xdotool实用程序.
除非您在同一显示器上的终端仿真器中运行,否则您需要设置正确的显示:
$ export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)
然后(从示例中省略了不相关的窗口):
# List windows
$ wmctrl -l
...
0x030000fa 0 kcirb Java - Eclipse
# Tell Eclipse window to close gracefully
$ wmctrl -c eclipse
# Darn, there's a confirmation dialog
$ wmctrl -l
...
0x030000fa 0 kcirb Java - Eclipse
0x03003c2d 0 kcirb Confirm Exit
# Send return key to the window
$ xdotool key --window 0x03003c2d Return
Run Code Online (Sandbox Code Playgroud)
至少在Ubuntu 12.04上为我工作过.
编辑:请参阅Scarabeetle的答案,了解使脚本运行所需的调整.
没有足够的声誉评论上面的pidge的答案 ...它几乎可以工作,但我需要等待一些Gnome3动画完成,然后将焦点放在"确认退出"窗口:
export DISPLAY=:0.0 # Do this in main X session
wmctrl -c "Eclipse SDK" # Close main window
sleep 1 # Wait for animation
wmctrl -a "Confirm Exit" # Give focus to the dialog
# Send a Return keypress to press the OK button
xdotool key --window $(xdotool search "Confirm Exit") Return
Run Code Online (Sandbox Code Playgroud)