Как я получаю командную строку, которая запустила процесс

От Java действительно ли возможно получить полную командную строку со всеми аргументами, которые запустили приложение?

System.getEnv() и System.getProperties() кажись, не содержать значения.

14
задан Georg Fritzsche 8 April 2010 в 17:40
поделиться

6 ответов

Некоторые из них доступны из RuntimeMXBean, полученные путем вызова ManagementFactory.getRuntimeMXBean ()

Затем вы можете, например, вызвать getInputArguments ()

Документы javadocs, для которых say:

Возвращает входные аргументы, переданные виртуальной машине Java, которая не включает аргументы основного метода. Этот метод возвращает пустой список, если у виртуальной машины Java нет входного аргумента.

Некоторые реализации виртуальной машины Java могут принимать входные аргументы из нескольких различных источников: например, аргументы, передаваемые из приложения, запускающего виртуальную машину Java, например команду «java», переменные среды, файлы конфигурации и т. Д.

Обычно не все параметры командной строки для команды java передаются виртуальной машине Java. Таким образом, возвращаемые входные аргументы могут не включать все параметры командной строки.

13
ответ дан 1 December 2019 в 13:33
поделиться

Вы можете узнать, как jps это делает. Это программа Java, которая может получить полную командную строку для всех процессов Java, включая полное имя класса основного класса и параметры JVM.

1
ответ дан 1 December 2019 в 13:33
поделиться

Один из вариантов, который я использовал в прошлом для поддержания межплатформенного сияния, - это установить командную строку в качестве переменной среды до выполнения команды .

0
ответ дан 1 December 2019 в 13:33
поделиться

В Linux / UNIX это должно быть возможно, когда вы получаете результат этой команды (запускается в оболочке)

cat /proc/$PPID/cmdline

Но это совсем не переносимо и поэтому не должны использоваться в Java ...

2
ответ дан 1 December 2019 в 13:33
поделиться

Следующие ссылки могут помочь вам добраться туда:

Как получить аргументы командной строки для запуска process

получить командную строку запущенных процессов

Как получить список текущих открытых окон / процессов с помощью Java?

В качестве примечания:

В Windows у вас есть Process Explorer от Sysinternals , который показывает командную строку, используемую для открытия процесса. Щелкните процесс правой кнопкой мыши и выберите «Свойства». В открывшемся окне вы увидите командную строку.

1
ответ дан 1 December 2019 в 13:33
поделиться

Существует переменная окружения %~dp0, которая возвращает полный путь

1
ответ дан 1 December 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: