diff --git a/firmware/CHANGELOG.md b/firmware/CHANGELOG.md index e9deb7aeec..8adf96a651 100644 --- a/firmware/CHANGELOG.md +++ b/firmware/CHANGELOG.md @@ -29,6 +29,7 @@ Release template (copy/paste this for new release): ### Added - new rusEFI console tab: Knock analyzer #6467 - Suzuki K6A (NON VVTI Trigger) #6490 + - explicit error if 32 bit java is used #6497 ### Fixed - knock logic not activated until any configuration change via TS #6462 diff --git a/java_console/logging/src/main/java/com/rusefi/FileLog.java b/java_console/logging/src/main/java/com/rusefi/FileLog.java index 3fb90f7318..99ed66cb1b 100644 --- a/java_console/logging/src/main/java/com/rusefi/FileLog.java +++ b/java_console/logging/src/main/java/com/rusefi/FileLog.java @@ -68,6 +68,10 @@ public enum FileLog { return System.getProperty("os.name"); } + public static boolean is32bitJava() { + return System.getProperty("os.arch").contains("86"); + } + public static boolean isWindows() { return getOsName().contains("Windows"); } @@ -140,4 +144,4 @@ public enum FileLog { } log(e); } -} \ No newline at end of file +} diff --git a/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java b/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java index 869111564e..1f283d2132 100644 --- a/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java +++ b/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java @@ -6,7 +6,7 @@ import java.net.URL; import java.util.concurrent.atomic.AtomicReference; public interface rusEFIVersion { - int CONSOLE_VERSION = 20240402; + int CONSOLE_VERSION = 20240511; AtomicReference firmwareVersion = new AtomicReference<>("N/A"); static long classBuildTimeMillis() { diff --git a/java_console/ui/src/main/java/com/rusefi/maintenance/ProgramSelector.java b/java_console/ui/src/main/java/com/rusefi/maintenance/ProgramSelector.java index 9cbed5f630..23a6d01869 100644 --- a/java_console/ui/src/main/java/com/rusefi/maintenance/ProgramSelector.java +++ b/java_console/ui/src/main/java/com/rusefi/maintenance/ProgramSelector.java @@ -136,6 +136,10 @@ public class ProgramSelector { } private void flashOpenBltCan(UpdateOperationCallbacks callbacks) { + if (FileLog.is32bitJava()) { + showError32bitJava(); + return; + } OpenbltJni.OpenbltCallbacks cb = makeOpenbltCallbacks(callbacks); try { @@ -220,7 +224,17 @@ public class ProgramSelector { }; } + private void showError32bitJava() { + JOptionPane.showMessageDialog(content, "64 bit java required. 32 bit java not supported!", + "Error", JOptionPane.ERROR_MESSAGE); + } + private void flashOpenbltSerialJni(String port, UpdateOperationCallbacks callbacks) { + if (FileLog.is32bitJava()) { + showError32bitJava(); + return; + } + OpenbltJni.OpenbltCallbacks cb = makeOpenbltCallbacks(callbacks); try {