Определение того, какой файл .txt использовался для запуска Java - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь выяснить, как получить имя файла, который использовался для запуска моего Java-скрипта.Я запускаю программу с java Test < input.txt, но когда я пытаюсь использовать wmic, чтобы получить командную строку java.exe, но вывод я получаю только java Test.Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 20 декабря 2018

Когда вы пишете java Test < input.txt, оболочка, в которую вы пишете, выполняет 2 действия: сначала она читает содержимое файла input.txt, затем она запускает команду java с аргументом «Test» и его стандартом.input (stdin / System.in), заполненный содержимым input.txt.

С точки зрения запущенной команды никогда не было < input.txt, на стандартном входе есть только некоторый контент.

Возможно, вы сможете сделать что-то на стороне ОС, например, на RHEL я могу вернуть файл следующим образом:

$ sleep 50 < /path/to/file &
[1] 18492
$ my_process_pid=$!
$ cat /proc/$my_process_pid/cmdline
sleep50                               # no signs of the redirection
$ readlink /proc/$my_process_pid/fd/0 # but we can check what stdin links to
/path/to/file

Мне кажется, что самый простой способ получить имя файла будетзаставить пользователя передать местоположение файла в качестве аргумента, а не использовать перенаправления для непосредственного использования содержимого файла.

...