diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java index b4c87fb9e..7e8e41a33 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaDownloadTask.java @@ -103,12 +103,20 @@ public class JavaDownloadTask extends Task { } catch (IOException e) { throw new ArtifactMalformedException("File " + entry.getKey() + " is malformed", e); } + + if (file.isExecutable()) { + dest.toFile().setExecutable(true); + } })); } else if (file.getDownloads().containsKey("raw")) { DownloadInfo download = file.getDownloads().get("raw"); FileDownloadTask task = new FileDownloadTask(NetworkUtils.toURL(download.getUrl()), dest.toFile(), new FileDownloadTask.IntegrityCheck("SHA-1", download.getSha1())); task.setName(entry.getKey()); - dependencies.add(task); + if (file.isExecutable()) { + dependencies.add(task.thenRunAsync(() -> dest.toFile().setExecutable(true))); + } else { + dependencies.add(task); + } } else { continue; }