diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java index 656a133a2..e08c9f141 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java @@ -216,13 +216,15 @@ public class DefaultGameRepository implements GameRepository { Path toJson = toDir.resolve(to + ".json"); Path toJar = toDir.resolve(to + ".jar"); + boolean hasJarFile = Files.exists(fromJar); + try { Files.move(fromJson, toJson); - Files.move(fromJar, toJar); + if (hasJarFile) Files.move(fromJar, toJar); } catch (IOException e) { // recovery Lang.ignoringException(() -> Files.move(toJson, fromJson)); - Lang.ignoringException(() -> Files.move(toJar, fromJar)); + if (hasJarFile) Lang.ignoringException(() -> Files.move(toJar, fromJar)); Lang.ignoringException(() -> Files.move(toDir, fromDir)); throw e; }