лучшее и более многообещающее решение
Ошибка должна уйти:)
Вы правы, что новый файл ("."). GetCanonicalPath ()
не работает. Это возвращает рабочий каталог .
Чтобы получить каталог сценария
scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
Чтобы получить путь к файлу сценария
scriptFile = getClass().protectionDomain.codeSource.location.path
Это имеет смысл, если вы запускаете код Groovy как сценарий, в противном случае вся идея становится немного запутанной, IMO. Обходной путь здесь: https://issues.apache.org/jira/browse/GROOVY-1642
В основном это включает изменение startGroovy.sh для передачи местоположения скрипта Groovy в качестве переменной окружения.