2015-06-23 3 views
1

Я запускаю следующий интерактивный Jar.bash интерактивный скрипт pass input

java -jar script.jar 
    argument-line-here 
    \n 

Теперь я создаю скрипт bash, который запускает файл jar. Как передать строку аргумента и конформацию «\ n» в этот интерактивный скрипт? это строки ввода для скрипта.

This question имеет некоторые ответы, expect еще не установлен в моей системе, и у меня нет sudo.

Редактировать: .jar также не возвращает текст. он ожидает только 2 строки. (один с аргументами и один с конформацией). Я также не могу редактировать приложение Java. Это не мой сценарий. Если бы я мог это сделать.

Вещи, которые я пробовал, но не работали.

java -jar myscript.jar 
<<< &"argument1 argument2 argument3 argument4" <<< $"\n" 

и

java -jar java -jar myscript.jar > tmp.txt 
expect "" 
send "argument1 argument2 argument3 argument4" 
expect "" 
send "\n" 
+0

Возможный дубликат [Передача аргументов в JAR, который требуется переводчиком Java] (http://stackoverflow.com/questions/5536476/passing-arguments-to-jar-which-is-required-by-java-interpreter) –

+0

предмет есть. Я не могу редактировать исходный код этого приложения Java. Я получил только банку. – Henkes

+1

Что ответ в указанном дубликате говорит вам (вы * прочитали его?), Так это то, что вы просто передаете аргументы как обычно, как и любая другая команда. –

ответ

1

Если вы хотите, чтобы перенаправить обычный стандартный ввод программы, вы можете использовать так называемые "здесь документы" (смотри, например, the BASH manual page):

java -jar script.jar <<EOF 
your input here 
EOF 

Это означает, что стандартный ввод (aka stdin) перенаправлен и будет текстом в «здесь документе», в данном случае your input here.

+0

Как указать значение для строки пароля. входы при вызове console.readPassword(). –

Смежные вопросы