Как говорит Джош, было бы неплохо, если бы вы сказали, почему вы хотите сделать это, чтобы помочь.
Отвечая только на то, что вы опубликовали, копирование jar - это просто копирование другого файла.Существует проблема, что он может быть заблокирован ОС (Windows);Другая проблема заключается в том, как найти его на компьютере, и если у пользователя, выполняющего процесс, есть необходимые разрешения.
Как только эти две проблемы решены, это всего лишь операция копирования, операционная система может не заботиться о том, чтобыесли заказ на копирование происходит из процесса, запущенного из файла или из другого файла.
РЕДАКТИРОВАТЬ, чтобы ответить на изменения в первом сообщении.
Как я уже говорил, в конце копируем файлэто проблема ОС.Если вы хотите скопировать текущий файл JAR в Windows, то этот файл не должен блокироваться другим процессом, поэтому он становится вопросом ОС, а не вопросом Java.
Возможные обходные пути:
- Более быстрый (но самый грязный) запуск .bat, который засыпает на несколько секунд, а затем копирует.Сразу после запуска, вы закроете Java-приложение.Если вам нужно продолжать делать что-то в Java, после копирования файла .bat снова запускает приложение java (с соответствующими параметрами).
- Вариант предыдущего немного более унылый ... запустите свой javaприложение из .bat, и первое, что делает .bat, это копирование вашего jar-файла во временный каталог ПК.Обязательно документируйте это хорошо, чтобы ваши пользователи не испугались!
- Библиотека JNI для разблокировки файла.Есть несколько программ, которые (Unlocker) пытаются разблокировать файлы;не знаю, в какой момент он эффективен или как он повлияет на JVM.