From 42d5688afffdae03ff59c87bd11bb485c06393b0 Mon Sep 17 00:00:00 2001 From: "Flemming N. Larsen" Date: Mon, 30 Sep 2024 16:38:12 +0200 Subject: [PATCH] Improved the message when choosing between the regular java compiler and the ECJ compiler, which requires Java 11+ --- .../ui/editor/RobocodeCompilerFactory.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/robocode.ui.editor/src/main/java/net/sf/robocode/ui/editor/RobocodeCompilerFactory.java b/robocode.ui.editor/src/main/java/net/sf/robocode/ui/editor/RobocodeCompilerFactory.java index 16f7a9b2c..4fbdc00f5 100644 --- a/robocode.ui.editor/src/main/java/net/sf/robocode/ui/editor/RobocodeCompilerFactory.java +++ b/robocode.ui.editor/src/main/java/net/sf/robocode/ui/editor/RobocodeCompilerFactory.java @@ -12,15 +12,17 @@ import net.sf.robocode.io.FileUtil; import net.sf.robocode.io.Logger; import net.sf.robocode.manager.IVersionManagerBase; -import static net.sf.robocode.io.Logger.logError; -import static net.sf.robocode.io.Logger.logMessage; import net.sf.robocode.ui.dialog.ConsoleDialog; import net.sf.robocode.ui.dialog.WindowUtil; +import net.sf.robocode.util.JavaVersion; import javax.swing.*; import java.io.*; import java.util.Objects; +import static net.sf.robocode.io.Logger.logError; +import static net.sf.robocode.io.Logger.logMessage; + /** * @author Mathew A. Nelson (original) @@ -101,8 +103,10 @@ public boolean configureCompiler(RobocodeEditor editor) { if (javacOK) { int rc = JOptionPane.showConfirmDialog(editor, - "Robocode has found a working javac (Java Compiler) on this system.\nWould you like to use it?\n" - + "(If you click No, Robocode will use the build-in Eclipse Compiler for Java (ECJ))", + "Robocode has found a working javac (Java Compiler) on this system.\nWould you like to use it?\n" + + "\n" + + "If you click No, Robocode will use the build-in Eclipse Compiler for Java (ECJ),\n" + + "which requires Java 11 or newer.", "Confirm javac", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); @@ -111,6 +115,17 @@ public boolean configureCompiler(RobocodeEditor editor) { javacOK = false; } } + + if (!javacOK) { + if (JavaVersion.getJavaMajorVersion() < 11) { + JOptionPane.showMessageDialog(editor, "Eclipse Compiler for Java (ECJ) requires\n" + + "Java 11 or newer to run.\n" + + "Please upgrade Java 11 or newer.", + "Error", JOptionPane.ERROR_MESSAGE); + + return false; // compilerOK = false + } + } if (!javacOK) { compilerName = "Eclipse Compiler for Java (ECJ)";