コマンドラインからEclipseをきれいにシャットダウンして、ファイルやワークスペースを保存する方法はありますか? kill -3は何もしません。 kill -1およびkill -15(デフォルト)は、EclipseをJVM終了ポップアップで突然終了します。 kill -9も同じことを行います。
ユースケースは、Eclipseがロードされたマシンでリモートで作業していて、Eclipseを閉じてメモリを節約したいが、最初にEclipseにその状態を保存させたい場合です。
VNCまたはいくつかの代替デスクトップ共有ソフトウェアを使用することもできますが、それは非常に負荷が大きく、コマンドラインソリューションの方がはるかに望ましいと思います。
編集:システム情報:GNOMEを使用したRHEL5.1 64ビット
gigi's answer および another question の助けを借りてこれを理解しました。パッケージマネージャから wmctrl
および xdotool
ユーティリティが必要になります。
同じディスプレイ上のターミナルエミュレータで実行している場合を除き、正しいディスプレイを設定する必要があります。
$ export DISPLAY=:0.0
次に(例から除外された無関係なウィンドウ):
# 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
少なくともUbuntu 12.04で私のために働いた。
編集:スクリプトから機能させるために必要な調整については、 Scarabeetleの回答 を参照してください。
上記の pidge's answer についてコメントするには十分な評判がありません...ほとんど問題なく動作しますが、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
Javaプロセスを殺してみてください。)ps -ea | grep Java
Wmctrlで試しましたか? wmtrl -lはウィンドウをリストし、wmlctrl -c -Pはウィンドウを閉じます。とにかく、Eclipseの確認ダイアログで問題が発生する可能性があります。
試しましたか kill -HUP
(kill -1
)? -これは、プロセスと対話していた人が誰もいなくなっており、適切にクリーンアップする必要があることをプロセスに伝える正規の方法です
この質問への答えは、同様の問題で私に役立ちました: Eclipseがハングし、適切にそれを殺す方法は?
Eclipseプロセスを強制終了した後、Javaプロセスを強制終了するまでEclipseウィンドウがそこにありました(上記の回答のようにjavawプロセスがありませんでした。 "Java"プロセスは1つしかありませんでした。殺されたときに問題が修正されました)。