it-swarm.com.ru

Создайте сценарий оболочки для запуска Java-программы в Linux

Я создал программу на Java, которая синхронизирует содержимое двух каталогов. Программа принимает местоположение двух каталогов в качестве аргументов, после чего происходит их синхронизация, информация о синхронизации сохраняется в файле в формате JSON внутри каждого каталога. У меня есть одна ссылочная библиотека json-simple-1.1.1.jar

Я запускаю это из Eclipse в Windows, и все работает правильно .... Я хочу создать сценарий оболочки, чтобы я мог запустить его на терминале Linux, набрав sync dir1 dir2, где sync - моя Java-программа, а dir1 и dir2 - пути к каталогам для синхронизации из текущего каталога.

Я очень плохо знаком со скриптами Shell и Linux и не уверен, легко ли это сделать или займет у меня целый день. 

5
M0rty

создайте файл с именем «sync» в/usr/bin, содержащий следующее:

Java -jar {PATH TO JARFILE} $1 $2

Замените {PATH TO JARFILE} на путь к jarfile

Сделайте файл исполняемым, введя chmod +x sync в/usr/bin

3
DutChen18

вы можете создать оболочку с именем скажем «run.sh» (обратите внимание на расширение .sh, сообщающее, что это скрипт Shell) и скопировать его в каталог/usr/local/bin.

1.Script (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
  1. скопируйте скрипт в/usr/local/bin

    cp run.sh/usr/local/bin

  2. Дать разрешение на выполнение скрипту

    chmod u + x /usr/local/bin/test.sh

  3. теперь вы можете ввести в командной строке только Word run или run.sh: Shell автоматически завершит имя скрипта, а также может быть выполнен нажатием клавиши ввода.

2
spectre007