私は2つのディレクトリの内容を同期するJavaプログラムを作成しました。このプログラムは、2つのディレクトリの場所を引数として取り、それらの同期を進めます。同期情報は、JSON形式で保存されます。各ディレクトリ内のファイルです。参照ライブラリが1つありますjson-simple-1.1.1.jar
私はこれをEclipseからWindowsで実行しており、すべてが正常に動作しています。 sync dir1 dir2
と入力してLinux端末でこれを実行できるように、シェルスクリプトを作成します。ここで、sync
は、私のJavaプログラムとdir1
です。およびdir2
は、現在のディレクトリから同期するディレクトリへのパスです。
私はシェルスクリプトとLinuxに非常に慣れていないので、これが簡単にできるのか、それとも1日中かかるかわかりません。
「sync」という名前のファイルを/ usr/binに作成し、以下を含めます。
Java -jar {PATH TO JARFILE} $1 $2
{PATH TO JARFILE}
をjarファイルへのパスに置き換えます
/ usr/binでchmod +x sync
と入力して、ファイルを実行可能にします
「run.sh」という名前のシェルを作成し(シェルスクリプトであることを示す.sh拡張子に注意)、それを/ usr/local/binディレクトリにコピーします。
1.スクリプト(run.sh)
#!/bin/sh
arg1=$1
arg2=$2
##directory where jar file is located
dir=/directory-path/to/jar-file/
##jar file name
jar_name=json-simple-1.1.1.jar
## Permform some validation on input arguments, one example below
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Missing arguments, exiting.."
echo "Usage : $0 arg1 arg2"
exit 1
fi
Java -jar $dir/$jar_name arg1 arg2
スクリプトを/ usr/local/binにコピーします
cp run.sh/usr/local/bin
スクリプトに実行許可を与える
chmod u + x /usr/local/bin/test.sh
これで、コマンドラインでWord runまたはrun.shと入力できます。シェルはスクリプト名をオートコンプリートし、Enterキーを押して実行することもできます。