Подтвердить что ты не робот

Как вы получаете путь к запуску script в groovy?

Я пишу groovy script, который я хочу контролировать через файл свойств, хранящийся в той же папке. Тем не менее, я хочу, чтобы иметь возможность называть это script из любого места. Когда я запускаю script, он всегда ищет файл свойств на основе того, где он выполняется, а не где script.

Как я могу получить доступ к пути к файлу script из script?

4b9b3361

Ответ 1

Вы правы, что new File(".").getCanonicalPath() не работает. Это возвращает рабочий каталог.

Чтобы получить каталог script

scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent

Чтобы получить путь к файлу script

scriptFile = getClass().protectionDomain.codeSource.location.path

Ответ 2

Это имеет смысл, если вы используете код Groovy как script, иначе вся идея становится немного запутанной, ИМО. Обходной путь здесь: https://issues.apache.org/jira/browse/GROOVY-1642

В основном это включает в себя изменение startGroovy.sh для передачи в местоположении Groovy script в качестве переменной среды.