Как вы получаете путь к запуску script в groovy?
Я пишу groovy script, который я хочу контролировать через файл свойств, хранящийся в той же папке. Тем не менее, я хочу, чтобы иметь возможность называть это script из любого места. Когда я запускаю script, он всегда ищет файл свойств на основе того, где он выполняется, а не где script.
Как я могу получить доступ к пути к файлу script из script?
Ответы
Ответ 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 в качестве переменной среды.