Запуск java программы из сценария оболочки с перенаправлением - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть программа java (Main. java, uandf. java и node. java), в которой основная программа принимает содержимое входного файла и выполняет другие функции. Для моего задания я должен написать сценарий оболочки, который компилирует и запускает программу, но входной файл должен быть перенаправлен в сценарий оболочки: т.е. shell_script. sh

Есть ли путь для передачи содержимого файла в программу java в качестве аргумента командной строки?

Что у меня есть:

#!/usr/bin/bash

javac -O Main.java uandf.java node.java
java -cp Main "$1"

Я запускаю скрипт с ./shell_script.sh < filename

Основной метод в программе java:

public static void main(String args[]) {
     String[] array = args[0].split("\n");
     ...
}

1 Ответ

1 голос
/ 14 февраля 2020

Это странная и неканоническая вещь, но да:

#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp . Main "$(cat)"

Обычно вместо этого вы читаете программу Java из System.in (как будто с клавиатуры), и только что использовал:

#!/usr/bin/bash
javac -O Main.java uandf.java node.java
java -cp . Main

При запуске ./shell_script.sh < filename чтение из System.in через Scanner или BufferedReader вернет данные из filename.

...