From 2bb30f65f3e64fa95c04cbe3b79368de7704d9e0 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 17 Jun 2018 13:11:56 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=9C=A8AppDataUpgrader=E4=B8=AD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8ReflectiveOperationException=E6=9B=BF=E4=BB=A3?= =?UTF-8?q?=E5=85=B7=E4=BD=93=E5=8F=8D=E5=B0=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java index 1bb60a961..3c0955d33 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/AppDataUpgrader.java @@ -33,7 +33,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; import java.net.*; import java.util.*; import java.util.concurrent.atomic.AtomicReference; @@ -49,7 +48,7 @@ import java.util.zip.GZIPInputStream; */ public class AppDataUpgrader extends IUpgrader { - private void launchNewerVersion(List args, File jar) throws IOException, ClassNotFoundException, NoSuchMethodException, SecurityException, InvocationTargetException, IllegalAccessException { + private void launchNewerVersion(List args, File jar) throws IOException, ReflectiveOperationException { try (JarFile jarFile = new JarFile(jar)) { String mainClass = jarFile.getManifest().getMainAttributes().getValue("Main-Class"); if (mainClass == null) @@ -91,7 +90,7 @@ public class AppDataUpgrader extends IUpgrader { } } catch (JsonParseException ex) { f.delete(); - } catch (IOException | NoSuchMethodException | SecurityException | InvocationTargetException | IllegalAccessException | ClassNotFoundException t) { + } catch (IOException | ReflectiveOperationException t) { Logging.LOG.log(Level.SEVERE, "Unable to execute newer version application", t); AppDataUpgraderPackGzTask.HMCL_VER_FILE.delete(); // delete version json, let HMCL re-download the newer version. } From 97132745cc9fb86d352c1545c0bc3e9c41c4db95 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 17 Jun 2018 13:30:05 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0hmcl.version.override?= =?UTF-8?q?=E9=80=89=E9=A1=B9=E7=94=A8=E4=BA=8E=E8=A6=86=E5=86=99HMCL?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java index d13c47bb2..3dbc21934 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java @@ -152,7 +152,7 @@ public final class Launcher extends Application { public static final File HMCL_DIRECTORY = OperatingSystem.getWorkingDirectory("hmcl"); public static final File LOG_DIRECTORY = new File(Launcher.HMCL_DIRECTORY, "logs"); - public static final String VERSION = "@HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@"; + public static final String VERSION = System.getProperty("hmcl.version.override", "@HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@"); public static final String NAME = "HMCL"; public static final String TITLE = NAME + " " + VERSION; public static final ResourceBundle RESOURCE_BUNDLE = Settings.INSTANCE.getLocale().getResourceBundle(); From 936a74597f880c97768bb9e75df828082ff92b96 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 17 Jun 2018 13:40:09 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=8B=A5=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E5=8C=85=E5=90=ABSNAPSHOT=E5=88=99=E4=B9=9F=E4=B8=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通过Gradle构建出来的JAR版本号为3.1.SNAPSHOT这样的 --- .../java/org/jackhuang/hmcl/upgrade/UpdateChecker.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java index 658b1b8ac..209cd7ab6 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java @@ -78,7 +78,7 @@ public final class UpdateChecker { @Override public void execute() throws Exception { - if (Launcher.VERSION.contains("@")) + if (isDevelopmentVersion(Launcher.VERSION)) return; if (value == null) { @@ -103,6 +103,11 @@ public final class UpdateChecker { }; } + private boolean isDevelopmentVersion(String version) { + return version.contains("@") || // eg. @HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@ + version.contains("SNAPSHOT"); // eg. 3.1.SNAPSHOT + } + /** * Get the cached newest version number, use "process" method to * download! From 520923ba0867b1406e2a8efb9baf8a52978e430b Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sun, 17 Jun 2018 13:44:04 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=B7=B3=E8=BF=87=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=97=B6=E8=AE=B0=E5=BD=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jackhuang/hmcl/upgrade/UpdateChecker.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java index 209cd7ab6..8230d01f1 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/upgrade/UpdateChecker.java @@ -27,10 +27,11 @@ import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskResult; import org.jackhuang.hmcl.ui.construct.MessageBox; import org.jackhuang.hmcl.util.Constants; -import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.VersionNumber; +import static org.jackhuang.hmcl.util.Logging.LOG; + import java.io.IOException; import java.util.Collection; import java.util.Collections; @@ -78,8 +79,10 @@ public final class UpdateChecker { @Override public void execute() throws Exception { - if (isDevelopmentVersion(Launcher.VERSION)) + if (isDevelopmentVersion(Launcher.VERSION)) { + LOG.info("Current version is a development version, skip updating"); return; + } if (value == null) { versionString = http.getResult(); @@ -87,7 +90,7 @@ public final class UpdateChecker { } if (value == null) { - Logging.LOG.warning("Unable to check update..."); + LOG.warning("Unable to check update..."); if (showMessage) MessageBox.show(Launcher.i18n("update.failed")); } else if (base.compareTo(value) < 0) @@ -129,12 +132,13 @@ public final class UpdateChecker { return new TaskResult>() { @Override public void execute() { - if (download_link == null) + if (download_link == null) { try { download_link = Constants.GSON.>fromJson(NetworkUtils.doGet(NetworkUtils.toURL(Launcher.UPDATE_SERVER + "/hmcl/update_link.php")), Map.class); } catch (JsonSyntaxException | IOException e) { - Logging.LOG.log(Level.SEVERE, "Failed to get update link.", e); + LOG.log(Level.SEVERE, "Failed to get update link.", e); } + } setResult(download_link); }