Я столкнулся с проблемой в cygwin, когда я не могу запустить jar-файл с ошибкой, что файл не может быть найден.
Если бы это было проще, я бы "перевел" исходник java в bash, но, к сожалению, из-за реализованной функциональности, есть некоторые довольно значительные препятствия для достижения этого, поэтому мне придется использовать jar-файл.
Теперь, я провел достаточно много исследований со своей стороны, чтобы выяснить, как это сделать, однако, я не смог добиться успеха, и мне обязательно нужно использовать cygwin.
Вот что я пытаюсь сделать:
lockfile="$specialfolder/$passedargument.lock
java -jar `cygpath -w ./cygdrive/driveletter/folder/folder/javafile.jar -joption cygpath -w $lockfile`
Я также пробовал использовать двойные обратные ссылки, как показано ниже:
pathtooutfile="${some_other_vars}/${that}_${work}.out"
java -jar `cygpath -w ./cygdrive/driveletter/folder/folder/javafile.jar` -joption `cygpath -w $lockfile`
Я также пробовал использовать переменную окружения $JAVA_HOME, но это тоже не сработало. Важно отметить, что переменные, вызываемые в lockfile var, определены следующим образом:
homedir= "/cygdrive/driveletter/folder/folder"
specialfolder= "$homedir/foler/$passedargument"
passedargument= $1 ###argument passed with execution of bash script
lockfile= "$specialfolder/$passedargument"
Ошибка, которую я продолжаю получать, следующая: Error: Unable to access jarfile Я изменил права на использование на 777 и это тоже не помогло. Также важно отметить, что -joption - это либо -aquire, либо -release, соответствующие lockfile, поскольку одна из вещей, которую делает jar, это управление несколькими выполнениями скрипта через файл блокировки. Я в некотором роде застрял, поэтому любые предложения будут высоко оценены. Я думаю, что это может быть скорее проблемой cygwin.