передача данных из java в bash
Если вы хотите сохранить данные из java в перекрывающей строке, вам нужно будет распечатать их в System.out
и прочитать их из оболочки .
Java код:
System.out.println("your source branch")
System.out.println("your destination branch")
Код оболочки
out="$(java -jar Engine.jar)"
sBranch="$(echo "$out"|sed -n '1p' /dev/stdin)"
destBranch="$(echo "$out"|sed -n '2p' /dev/stdin)"
передача данных от bash до java
Если вы жестко закодируете строки, java будет просто использовать строки. Если вы хотите изменить это, вам нужно будет изменить свой java код.
опция 1 - аргументы
Если вы хотите передать строки в сценарии, используя java -jar Engine.jar Source_branch Destination_brnach Destination_env
, вы можете использовать их в своем методе main
с параметром args
.
Например, вы можете напечатать первую строку в вашем основном методе, используя
System.out.println(args[0]);
Если вы сделаете это, проверьте, если args.length
больше самого высокого аргумента, к которому вы обращаетесь.
опция 2 - Свойства системы
Если вы хотите получить параметры без доступа к аргументам (независимо от вашего основного метода), вам нужно будет использовать Системные свойства.
Сначала измените скрипт так:
java -jar -DSource_branch=yourSourceBranch -DDestination_branch=yourDestinationBranch -DDestination_env=yourDestinationEnv
Engine.jar
Обратите внимание, что -D
. Это означает, что вы передаете Системные свойства. Синтаксис для этого -D<key>=<value>
, и он должен находиться между java
и -jar
.
Кроме того, вам нужно будет использовать System.getProperty()
для доступа к нему из любого места в вашем коде.
Например:
public static String getSourceBranch() {
return System.getProperty("Source_Branch");
}