У вас есть два варианта. Во-первых, вы можете установить текущий каталог для запланированной задачи так же, как вы можете указать исполняемый файл. Это, конечно, еще одна вещь, о которой вам нужно беспокоиться, если местоположение когда-либо изменится.
Другой способ уже показан в вашем скрипте. %~dp0
в спецификации jarfile - это диск и путь нулевого аргумента (имя пакетного файла), поэтому он ищет jarfile в том же каталоге, что и ваш пакетный файл.
Следовательно, вы можете просто положить:
cd /d %~dp0
в ваш командный файл, прежде чем пытаться запустить вашу Java-программу, и он будет в правильном каталоге, даже если вы решите переместить его в другое место.