优化无法补全 JavaFX 时的报错信息 (#5586)
This commit is contained in:
@@ -200,9 +200,6 @@ public final class EntryPoint {
|
|||||||
} catch (SelfDependencyPatcher.PatchException e) {
|
} catch (SelfDependencyPatcher.PatchException e) {
|
||||||
LOG.error("Unable to patch JVM", e);
|
LOG.error("Unable to patch JVM", e);
|
||||||
showErrorAndExit(i18n("fatal.javafx.missing"));
|
showErrorAndExit(i18n("fatal.javafx.missing"));
|
||||||
} catch (SelfDependencyPatcher.IncompatibleVersionException e) {
|
|
||||||
LOG.error("Unable to patch JVM", e);
|
|
||||||
showErrorAndExit(i18n("fatal.javafx.incompatible"));
|
|
||||||
} catch (CancellationException e) {
|
} catch (CancellationException e) {
|
||||||
LOG.error("User cancels downloading JavaFX", e);
|
LOG.error("User cancels downloading JavaFX", e);
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|||||||
@@ -79,10 +79,11 @@ public final class SelfDependencyPatcher {
|
|||||||
private final byte[] buffer = new byte[IOUtils.DEFAULT_BUFFER_SIZE];
|
private final byte[] buffer = new byte[IOUtils.DEFAULT_BUFFER_SIZE];
|
||||||
private final MessageDigest digest = DigestUtils.getDigest("SHA-1");
|
private final MessageDigest digest = DigestUtils.getDigest("SHA-1");
|
||||||
|
|
||||||
private SelfDependencyPatcher() throws IncompatibleVersionException {
|
private SelfDependencyPatcher() throws PatchException {
|
||||||
// We can only self-patch JavaFX on specific platform.
|
// We can only self-patch JavaFX on specific platform.
|
||||||
if (dependencies == null) {
|
if (dependencies == null) {
|
||||||
throw new IncompatibleVersionException();
|
throw new PatchException("Unsupported platform: operating system %s, architecture %s".formatted(
|
||||||
|
System.getProperty("os.name"), System.getProperty("os.arch")));
|
||||||
}
|
}
|
||||||
|
|
||||||
final String customUrl = System.getProperty("hmcl.openjfx.repo");
|
final String customUrl = System.getProperty("hmcl.openjfx.repo");
|
||||||
@@ -159,18 +160,12 @@ public final class SelfDependencyPatcher {
|
|||||||
/**
|
/**
|
||||||
* Patch in any missing dependencies, if any.
|
* Patch in any missing dependencies, if any.
|
||||||
*/
|
*/
|
||||||
public static void patch() throws PatchException, IncompatibleVersionException, CancellationException {
|
public static void patch() throws PatchException, CancellationException {
|
||||||
// Do nothing if JavaFX is detected
|
// Do nothing if JavaFX is detected
|
||||||
try {
|
try {
|
||||||
try {
|
Class.forName("javafx.application.Application");
|
||||||
Class.forName("javafx.application.Application");
|
return;
|
||||||
return;
|
} catch (Exception ignored) {
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
} catch (UnsupportedClassVersionError error) {
|
|
||||||
// Loading the JavaFX class was unsupported.
|
|
||||||
// We are probably on 8 and its on 11
|
|
||||||
throw new IncompatibleVersionException();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SelfDependencyPatcher patcher = new SelfDependencyPatcher();
|
SelfDependencyPatcher patcher = new SelfDependencyPatcher();
|
||||||
@@ -378,14 +373,15 @@ public final class SelfDependencyPatcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class PatchException extends Exception {
|
public static class PatchException extends Exception {
|
||||||
|
PatchException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
PatchException(String message, Throwable cause) {
|
PatchException(String message, Throwable cause) {
|
||||||
super(message, cause);
|
super(message, cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class IncompatibleVersionException extends Exception {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ProgressFrame extends JDialog {
|
public static class ProgressFrame extends JDialog {
|
||||||
|
|
||||||
private final JProgressBar progressBar;
|
private final JProgressBar progressBar;
|
||||||
|
|||||||
@@ -401,9 +401,6 @@ extension.schematic=Schematic File
|
|||||||
extension.world=World Archive
|
extension.world=World Archive
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher cannot create the HMCL directory (%s). Please move HMCL to another location and reopen it.
|
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher cannot create the HMCL directory (%s). Please move HMCL to another location and reopen it.
|
||||||
fatal.javafx.incompatible=Missing JavaFX environment.\n\
|
|
||||||
Hello Minecraft! Launcher cannot automatically install JavaFX on Java <11.\n\
|
|
||||||
Please update your Java to version 11 or later.
|
|
||||||
fatal.javafx.incomplete=The JavaFX environment is incomplete.\n\
|
fatal.javafx.incomplete=The JavaFX environment is incomplete.\n\
|
||||||
Please try replacing your Java or reinstalling OpenJFX.
|
Please try replacing your Java or reinstalling OpenJFX.
|
||||||
fatal.javafx.missing=Missing JavaFX environment. Please open Hello Minecraft! Launcher with Java, which includes OpenJFX.
|
fatal.javafx.missing=Missing JavaFX environment. Please open Hello Minecraft! Launcher with Java, which includes OpenJFX.
|
||||||
|
|||||||
@@ -370,9 +370,6 @@ extension.mod=ملف التعديل
|
|||||||
extension.world=أرشيف العالم
|
extension.world=أرشيف العالم
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher لا يمكنه إنشاء دليل HMCL (%s). يرجى نقل HMCL إلى موقع آخر وإعادة فتحه.
|
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher لا يمكنه إنشاء دليل HMCL (%s). يرجى نقل HMCL إلى موقع آخر وإعادة فتحه.
|
||||||
fatal.javafx.incompatible=بيئة JavaFX مفقودة.\n\
|
|
||||||
Hello Minecraft! Launcher لا يمكنه تثبيت JavaFX تلقائياً على Java <11.\n\
|
|
||||||
يرجى تحديث Java الخاص بك إلى الإصدار 11 أو أحدث.
|
|
||||||
fatal.javafx.incomplete=بيئة JavaFX غير مكتملة.\n\
|
fatal.javafx.incomplete=بيئة JavaFX غير مكتملة.\n\
|
||||||
يرجى محاولة استبدال Java الخاص بك أو إعادة تثبيت OpenJFX.
|
يرجى محاولة استبدال Java الخاص بك أو إعادة تثبيت OpenJFX.
|
||||||
fatal.javafx.missing=بيئة JavaFX مفقودة. يرجى فتح Hello Minecraft! Launcher باستخدام Java، والذي يتضمن OpenJFX.
|
fatal.javafx.missing=بيئة JavaFX مفقودة. يرجى فتح Hello Minecraft! Launcher باستخدام Java، والذي يتضمن OpenJFX.
|
||||||
|
|||||||
@@ -372,9 +372,6 @@ extension.mod=Archivo mod
|
|||||||
extension.world=Archivo del mundo
|
extension.world=Archivo del mundo
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=El lanzador no puede crear el directorio HMCL (%s). Por favor, mueva el lanzador a otra ubicación y vuelva a abrirlo.
|
fatal.create_hmcl_current_directory_failure=El lanzador no puede crear el directorio HMCL (%s). Por favor, mueva el lanzador a otra ubicación y vuelva a abrirlo.
|
||||||
fatal.javafx.incompatible=No se encontró un entorno JavaFX.\n\
|
|
||||||
Hello Minecraft! Launcher no puede instalar automáticamente JavaFX con versiones de Java inferiores a la 11.\n\
|
|
||||||
Por favor, actualice su Java a la versión 11 o posterior.
|
|
||||||
fatal.javafx.incomplete=El entorno JavaFX está incompleto.\n\
|
fatal.javafx.incomplete=El entorno JavaFX está incompleto.\n\
|
||||||
Por favor, intente reemplazar su Java o reinstalar OpenJFX.
|
Por favor, intente reemplazar su Java o reinstalar OpenJFX.
|
||||||
fatal.javafx.missing=No se encontró un entorno JavaFX.\n\
|
fatal.javafx.missing=No se encontró un entorno JavaFX.\n\
|
||||||
|
|||||||
@@ -322,7 +322,6 @@ extension.datapack=Datapack
|
|||||||
extension.mod=Modファイル
|
extension.mod=Modファイル
|
||||||
extension.world=World zip
|
extension.world=World zip
|
||||||
|
|
||||||
fatal.javafx.incompatible=アプリケーションは11未満の現在のJava環境でJavaFXにパッチを適用できません。\nこのアプリは、JDK11以降またはJavaFXがバンドルされたJDKを使用して実行してください。
|
|
||||||
fatal.javafx.missing=JavaFXがありません。\nJava11以降を使用している場合は、Oracle JRE 8にダウングレードするか、BellSoft Liberica FullJREをインストールしてください。\n他のOpenJDKビルドを使用している場合は、OpenJFXが含まれていることを確認してください。
|
fatal.javafx.missing=JavaFXがありません。\nJava11以降を使用している場合は、Oracle JRE 8にダウングレードするか、BellSoft Liberica FullJREをインストールしてください。\n他のOpenJDKビルドを使用している場合は、OpenJFXが含まれていることを確認してください。
|
||||||
fatal.config_loading_failure=構成にアクセスできません。\nHelloMinecraftを確認してください。Launcherには、「%s」とその中のファイルへの読み取りおよび書き込みアクセス権があります。
|
fatal.config_loading_failure=構成にアクセスできません。\nHelloMinecraftを確認してください。Launcherには、「%s」とその中のファイルへの読み取りおよび書き込みアクセス権があります。
|
||||||
fatal.migration_requires_manual_reboot=更新が完了しました。Hello Minecraftを再開してください!ランチャー。
|
fatal.migration_requires_manual_reboot=更新が完了しました。Hello Minecraftを再開してください!ランチャー。
|
||||||
|
|||||||
@@ -368,7 +368,6 @@ extension.mod=改囊案
|
|||||||
extension.world=生界緊囊
|
extension.world=生界緊囊
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=HMCL 不能立其案夾 (%s),宜稍遷而再啟之。\n君可求助於 https://docs.hmcl.net/help.html。
|
fatal.create_hmcl_current_directory_failure=HMCL 不能立其案夾 (%s),宜稍遷而再啟之。\n君可求助於 https://docs.hmcl.net/help.html。
|
||||||
fatal.javafx.incompatible=JavaFX 闕。\n既行於爪哇之次乎爪哇十一者,HMCL 不能自補之也。宜晉爪哇於十一抑後之者。\n君可求助於 https://docs.hmcl.net/help.html。
|
|
||||||
fatal.javafx.incomplete=JavaFX 損。宜更爪哇,抑復置 OpenJFX。
|
fatal.javafx.incomplete=JavaFX 損。宜更爪哇,抑復置 OpenJFX。
|
||||||
fatal.javafx.missing=JavaFX 闕。君須行 HMCL 於爪哇之俻 OpenJFX 者。\n君可求助於 https://docs.hmcl.net/help.html。
|
fatal.javafx.missing=JavaFX 闕。君須行 HMCL 於爪哇之俻 OpenJFX 者。\n君可求助於 https://docs.hmcl.net/help.html。
|
||||||
fatal.config_change_owner_root=君方啟 HMCL 以根戶簿,是則他戶簿或不能啟之。\n君可求助於 https://docs.hmcl.net/help.html。\n猶啟諸?
|
fatal.config_change_owner_root=君方啟 HMCL 以根戶簿,是則他戶簿或不能啟之。\n君可求助於 https://docs.hmcl.net/help.html。\n猶啟諸?
|
||||||
|
|||||||
@@ -372,9 +372,6 @@ extension.mod=Файл мода
|
|||||||
extension.world=Архив мира
|
extension.world=Архив мира
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=Лаунчер не может создать папку HMCL (%s). Пожалуйста, переместите лаунчер в другое место и откройте его снова.
|
fatal.create_hmcl_current_directory_failure=Лаунчер не может создать папку HMCL (%s). Пожалуйста, переместите лаунчер в другое место и откройте его снова.
|
||||||
fatal.javafx.incompatible=Отсутствует среда JavaFX.\n\
|
|
||||||
Лаунчер не может автоматически установить JavaFX на Java <11.\n\
|
|
||||||
Обновите Java до версии 11 или более поздней.
|
|
||||||
fatal.javafx.incomplete=Среда JavaFX является неполной.\n\
|
fatal.javafx.incomplete=Среда JavaFX является неполной.\n\
|
||||||
Попробуйте заменить Java или переустановить OpenJFX.
|
Попробуйте заменить Java или переустановить OpenJFX.
|
||||||
fatal.javafx.missing=Отсутствует среда JavaFX.\n\
|
fatal.javafx.missing=Отсутствует среда JavaFX.\n\
|
||||||
|
|||||||
@@ -370,9 +370,6 @@ extension.mod=Файл мода
|
|||||||
extension.world=Архів світу
|
extension.world=Архів світу
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Лаунчер не може створити каталог HMCL (%s). Перемістіть HMCL в інше місце та відкрийте його знову.
|
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Лаунчер не може створити каталог HMCL (%s). Перемістіть HMCL в інше місце та відкрийте його знову.
|
||||||
fatal.javafx.incompatible=Відсутнє середовище JavaFX. \n\
|
|
||||||
Hello Minecraft! Лаунчер не може автоматично встановити JavaFX на Java <11. \n\
|
|
||||||
Оновіть вашу Java до версії 11 або новішої.
|
|
||||||
fatal.javafx.incomplete=Середовище JavaFX неповне. \n\
|
fatal.javafx.incomplete=Середовище JavaFX неповне. \n\
|
||||||
Спробуйте замінити вашу Java або перевстановити OpenJFX.
|
Спробуйте замінити вашу Java або перевстановити OpenJFX.
|
||||||
fatal.javafx.missing=Відсутнє середовище JavaFX. Відкрийте Hello Minecraft! Лаунчер за допомогою Java, яка включає OpenJFX.
|
fatal.javafx.missing=Відсутнє середовище JavaFX. Відкрийте Hello Minecraft! Лаунчер за допомогою Java, яка включає OpenJFX.
|
||||||
|
|||||||
@@ -393,7 +393,6 @@ extension.schematic=原理圖檔案
|
|||||||
extension.world=世界壓縮檔
|
extension.world=世界壓縮檔
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher 無法建立 HMCL 資料夾 (%s),請將 HMCL 移動至其他位置再開啟。
|
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher 無法建立 HMCL 資料夾 (%s),請將 HMCL 移動至其他位置再開啟。
|
||||||
fatal.javafx.incompatible=缺少 JavaFX 執行環境。\nHMCL 無法在低於 Java 11 的 Java 環境上自行補全 JavaFX 執行環境。請更新到 Java 11 或更高版本。
|
|
||||||
fatal.javafx.incomplete=JavaFX 執行環境不完整。請嘗試更換你的 Java 或者重新安裝 OpenJFX。
|
fatal.javafx.incomplete=JavaFX 執行環境不完整。請嘗試更換你的 Java 或者重新安裝 OpenJFX。
|
||||||
fatal.javafx.missing=缺少 JavaFX 執行環境。請使用包含 OpenJFX 的 Java 執行環境開啟 Hello Minecraft! Launcher。
|
fatal.javafx.missing=缺少 JavaFX 執行環境。請使用包含 OpenJFX 的 Java 執行環境開啟 Hello Minecraft! Launcher。
|
||||||
fatal.config_change_owner_root=你正在使用 root 帳戶開啟 Hello Minecraft! Launcher,這可能導致你未來無法使用其他帳戶正常開啟 HMCL。\n是否繼續開啟?
|
fatal.config_change_owner_root=你正在使用 root 帳戶開啟 Hello Minecraft! Launcher,這可能導致你未來無法使用其他帳戶正常開啟 HMCL。\n是否繼續開啟?
|
||||||
|
|||||||
@@ -396,7 +396,6 @@ extension.schematic=原理图文件
|
|||||||
extension.world=世界压缩包
|
extension.world=世界压缩包
|
||||||
|
|
||||||
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher 无法创建 HMCL 文件夹 (%s),请将 HMCL 移动至其他位置再启动。\n如遇到问题,你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。
|
fatal.create_hmcl_current_directory_failure=Hello Minecraft! Launcher 无法创建 HMCL 文件夹 (%s),请将 HMCL 移动至其他位置再启动。\n如遇到问题,你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。
|
||||||
fatal.javafx.incompatible=缺少 JavaFX 运行环境。\nHello Minecraft! Launcher 无法在低于 Java 11 的 Java 环境上自行补全 JavaFX 运行环境。请更新到 Java 11 或更高版本。\n你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。
|
|
||||||
fatal.javafx.incomplete=JavaFX 运行环境不完整。请尝试更换你的 Java 或者重新安装 OpenJFX。
|
fatal.javafx.incomplete=JavaFX 运行环境不完整。请尝试更换你的 Java 或者重新安装 OpenJFX。
|
||||||
fatal.javafx.missing=缺少 JavaFX 运行环境。请使用包含 OpenJFX 的 Java 运行环境启动 Hello Minecraft! Launcher。\n你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。
|
fatal.javafx.missing=缺少 JavaFX 运行环境。请使用包含 OpenJFX 的 Java 运行环境启动 Hello Minecraft! Launcher。\n你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。
|
||||||
fatal.config_change_owner_root=你正在使用 root 账户启动 Hello Minecraft! Launcher,这可能导致你未来无法正常使用其他账户正常启动 HMCL。\n你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。\n是否继续启动?
|
fatal.config_change_owner_root=你正在使用 root 账户启动 Hello Minecraft! Launcher,这可能导致你未来无法正常使用其他账户正常启动 HMCL。\n你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。\n是否继续启动?
|
||||||
|
|||||||
Reference in New Issue
Block a user