fix: добавляем JavaFX module-path и настройки для GUI запуска

This commit is contained in:
SashegDev
2026-05-05 11:23:59 +00:00
parent 991252130d
commit 08417efe2f
3 changed files with 31 additions and 12 deletions
+12 -1
View File
@@ -42,6 +42,12 @@
<exclude>META-INF/*.RSA</exclude> <exclude>META-INF/*.RSA</exclude>
</excludes> </excludes>
</filter> </filter>
<filter>
<artifact>org.openjfx:javafx-*</artifact>
<excludes>
<exclude>**/*-linux.jar</exclude>
</excludes>
</filter>
</filters> </filters>
<dependencySet> <dependencySet>
<outputDirectory>/</outputDirectory> <outputDirectory>/</outputDirectory>
@@ -85,11 +91,16 @@
<configuration> <configuration>
<outfile>../server/builds/ZernMCLauncher-${project.version}.exe</outfile> <outfile>../server/builds/ZernMCLauncher-${project.version}.exe</outfile>
<jar>../server/builds/ZernMCLauncher.jar</jar> <jar>../server/builds/ZernMCLauncher.jar</jar>
<headerType>console</headerType> <headerType>gui</headerType>
<dontWrapJar>false</dontWrapJar> <dontWrapJar>false</dontWrapJar>
<jre> <jre>
<path>jre21</path> <path>jre21</path>
<minVersion>21</minVersion> <minVersion>21</minVersion>
<opts>
<opt>--module-path=lib-javafx</opt>
<opt>--add-modules=javafx.controls,javafx.web</opt>
<opt>--add-reads=javafx.graphics=ALL-UNNAMED</opt>
</opts>
</jre> </jre>
<versionInfo> <versionInfo>
<fileVersion>${project.version}.0</fileVersion> <fileVersion>${project.version}.0</fileVersion>
+8 -3
View File
@@ -187,11 +187,16 @@
<configuration> <configuration>
<outfile>../server/builds/ZernMCLauncher-${project.version}.exe</outfile> <outfile>../server/builds/ZernMCLauncher-${project.version}.exe</outfile>
<jar>../server/builds/ZernMCLauncher.jar</jar> <jar>../server/builds/ZernMCLauncher.jar</jar>
<headerType>console</headerType> <headerType>gui</headerType>
<dontWrapJar>false</dontWrapJar> <dontWrapJar>false</dontWrapJar>
<jre> <jre>
<path>jre21</path> <path>jre21</path>
<minVersion>21</minVersion> <minVersion>21</minVersion>
<opts>
<opt>--module-path=lib-javafx</opt>
<opt>--add-modules=javafx.controls,javafx.web</opt>
<opt>--add-reads=javafx.graphics=ALL-UNNAMED</opt>
</opts>
</jre> </jre>
<versionInfo> <versionInfo>
<fileVersion>${project.version}.0</fileVersion> <fileVersion>${project.version}.0</fileVersion>
@@ -227,10 +232,10 @@
<fileset dir="${user.home}/launcher/jre/jre21"/> <fileset dir="${user.home}/launcher/jre/jre21"/>
</copy> </copy>
<!-- Создаём zip только с .exe и jre21 (без .jar и build.version) --> <!-- Создаём zip с .exe, jre21 и lib-javafx (без .jar и build.version) -->
<zip destfile="../server/builds/ZernMCLauncher-${project.version}.zip" <zip destfile="../server/builds/ZernMCLauncher-${project.version}.zip"
basedir="../server/builds" basedir="../server/builds"
includes="ZernMCLauncher.exe,jre21/**" includes="ZernMCLauncher.exe,jre21/**,lib-javafx/**"
excludes="*.jar,build.version"/> excludes="*.jar,build.version"/>
</target> </target>
</configuration> </configuration>
@@ -34,6 +34,7 @@ public class Main {
startWebUI(args); startWebUI(args);
} catch (Exception e) { } catch (Exception e) {
System.err.println(ZAnsi.red("UI не запустился: " + e.getMessage())); System.err.println(ZAnsi.red("UI не запустился: " + e.getMessage()));
e.printStackTrace();
System.out.println(ZAnsi.yellow("Переключаюсь на режим TUI...")); System.out.println(ZAnsi.yellow("Переключаюсь на режим TUI..."));
runTUI(args); runTUI(args);
} }
@@ -70,14 +71,16 @@ public class Main {
// Даем серверу время запуститься // Даем серверу время запуститься
Thread.sleep(1000); Thread.sleep(1000);
// Проверяем headless перед запуском JavaFX // Проверяем headless перед запуском JavaFX (только для не-Windows систем)
boolean isHeadless = java.awt.GraphicsEnvironment.isHeadless(); if (!System.getProperty("os.name").toLowerCase().contains("win")) {
String display = System.getenv("DISPLAY"); boolean isHeadless = java.awt.GraphicsEnvironment.isHeadless();
if (isHeadless && (display == null || display.isEmpty())) { String display = System.getenv("DISPLAY");
System.out.println(ZAnsi.yellow("Дисплей недоступен, переключаюсь на TUI...")); if (isHeadless && (display == null || display.isEmpty())) {
WebServer.stop(); System.out.println(ZAnsi.yellow("Дисплей недоступен, переключаюсь на TUI..."));
runTUI(args); WebServer.stop();
return; runTUI(args);
return;
}
} }
// Проверка обновлений лаунчера // Проверка обновлений лаунчера