Linux環境でのjar ファイルの実行

【コマンド】

    nohup java -jar sample.jar > out.log > err.log

言い訳から入りますが、Webが専門なもんで、中々実行可能なjarファイルを作って実行するってやったことなかった。そのため、めちゃくちゃ基礎的な内容が含まれている可能性があります。
Javaエンジニアなら、これくらいのことは知っておいた方が良いね。これならJavaでバッチを作るときにも役に立つ!(ハズ)
というコトで、今回は、Linux環境でのJavaコマンドの設定とEclipse3.7から実行可能なjarファイルを生成してLinuxサーバで実行す るところまでを解説します。合わせて、リモートコンソールを閉じてもコマンドを実行し続けるための方法(nohup)も合わせて解説します。

・実行可能Jarの作成
前提として、Mainクラスを1つ持ったプロジェクトで実施します。(2つ以上持っていると上手く出来なかったので…)
まず、プロジェクトを選択して『エクスポート』→Javaの『実行可能Jarファイル』→次へ→起動構成からMainクラスを選択→任意のエクスポート先を指定して完了(他に必要な設定があれば適宜)

Linux環境でのJavaコマンドの設定
/etc/profileにJava関連の環境変数を登録します。このファイルは、ユーザがログインした際に最初に読み込まれるファイルです。私の環境では、オーナーはroot、パーミッションは644なのでrootで編集します。
末尾に以下を追加。パスなどは都度、読み替えてください。

    export JAVA_HOME=/usr/local/java
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

・実行可能Jarの実行
JarファイルをLinux環境の任意のパスに置いたら以下のようなコマンドを実行。

    > java -jar sample.jar

これで、実行できると思います。

・nohupを使ったコマンドの実行
SSH などで接続してコマンドを実行すると、SSHを切断したタイミングで処理が終了してしまいます。処理時間が短いコマンドなら良いのですが、ひたすら実行し 続けるようなコマンドの場合コンソールを開きっぱなしにしておくわけにはいきません。『nohup』コマンドを使用することでSSHを切断しても処理を継続するようにします。

    > nohup java -jar sample.jar > out.log > err.log &

nohupコマンドの後続は通常のコマンドを記載し、リダイレクションで出力ファイルを指定します。
プロセスが終了したかはpsコマンドで確認してください。以下のような形で出力されます。

    > ps ax | grep java
    32345 ? Sl 115:02 java -jar sample.jar


【参考サイト】
Java開発実行環境を構築する(J2SDK-Linux編) - Fedoraで自宅サーバー構築
ログアウトしてもバックグラウンド ジョブを継続する方法