я могу получить рабочую директорию текущей программы Java с помощью этого кода: Path path = Paths.get(*ClassName*.class.getProtectionDomain().getCodeSource().getLocation().toURI());
Получить рабочую директорию другого процесса Java
Также я могу получить CommandLine параметров (но нет каталога на выходе) запускать Java-процессы с использованием эта команда wmic process get CommandLine where name='java.exe' /value
Возможно получить рабочий каталог другого Java-процесса (лучше программно)? Возможно, это можно решить с помощью некоторых утилит jdk/bin?
* ИмяКласс * .class.getProtectionDomain() getCodeSource() getLocation() Touri() потерпит неудачу в некоторых обстоятельствах. Если вы хотите использовать текущий каталог, почему бы просто не использовать 'System.getProperty (« user.dir »)'? – VGR
'getProtectionDomain(). GetCodeSource(). GetLocation()' даст вам * местоположение кода * (как следует из названия), которое * не обязательно совпадает с рабочим каталогом. Это должно быть очевидно при рассмотрении того, что разные классы имеют разные источники кода. Кроме того, преобразование этого местоположения в «Путь» через «Paths.get» будет работать только в том случае, если это «файл: URI», но сбой, например. для классов, содержащихся в файле jar. Если вам нужен «Путь», представляющий рабочий каталог, «Paths.get (« »)' достаточно, если вы хотите узнать его текущий абсолютный путь, используйте «Paths.get (»). ToAbsolutePath() '... – Holger