Получение "Ошибка при инициализации виртуальной машины"
У меня есть устаревший скрипт оболочки, который вызывается планировщиком заданий Autosys. В скрипте они вызывают файл jar
res="'$JAVA_HOME/bin/java ....'"
echo >$res<
и я получаю следующую ошибку.
Error occurred during initialization of VM
java.lang.Error: Properties init: Could not determine current working directory.
Поэтому в сценарии оболочки я попытался напечатать текущий каталог, как показано ниже
echo "PWD:" "$PWD" # Nothing gets printed.
echo "USER:" "$USER" # User id is getting printed
if [ -d "/export/home/abc/" ]; then
echo "Directory present" # gets printed
echo 'ls -ltr' # total 3 gets printed
echo 'cd /export/abc/def'
echo 'pwd' # nothing gets printed
fi
Все пути класса устанавливаются в самом скрипте, и путь к нему выглядит нормально. Я не понимаю, что может быть проблемой здесь.
Также обратите внимание, что этот скрипт вызывается другим скриптом, который стажер вызывает планировщик заданий Autosys.
Ответы
Ответ 1
Спасибо Андрею за подсказку.
Как сказано в сообщении, это был устаревший скрипт, и в каждом из скриптов были тысячи строк, которые сделали наш анализ сложным. Но, наконец, выяснилось, что процесс, в котором мы получаем ошибку, запускается другим пользователем. У этого пользователя не было разрешения на доступ к родительской папке, и, следовательно, мы получали
Could not determine current working directory.
Я дал разрешение на родительскую папку этому пользователю, и он сработал. Всем спасибо...
Ответ 2
Это ожидаемое поведение.
Скрипт запускается в подоболочке и не может изменять рабочий каталог родительской оболочки. Его эффекты теряются, когда они заканчиваются.
SO Ссылка для обходного пути.