Есть слудующий кусок кода.
final File myself = new File(new File(getClass().getProtectionDomain().getCodeSource().getLocation().getFile()).getParentFile(), "Consultant.jar");
final File tmp = File.createTempFile("Chat", ".tmp");
try(
final ReadableByteChannel rbc = Channels.newChannel(new URL(url).openStream())
)
{
try (final FileOutputStream fos = new FileOutputStream(tmp)) {
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.flush();
}
}
if(!tmp.renameTo(myself))
{
try {
Files.move(tmp.toPath(), myself.toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (Exception e) {
e.printStackTrace();
throw new Exception("Cant rename tmp-download version '" + tmp.getAbsolutePath() + "' to exec-binary '" + myself.getAbsolutePath() + "'\r\n" + e.getMessage());
}
}
Но он почему-то не работает. Уже долгое время бьюсь над проблемой, но вижу только следующую ошибку:
java.lang.Exception: Cant rename tmp-download version 'C:\Users\Cobalt\AppData\Local\Temp\Chat6072918692286185513.tmp' to exec-binary 'C:\Program%20Files\Consultant\app\Consultant.jar’