3.7.2 .exe requires update, .bat doesn't

Similar to this, after unpacking the zip, starting openrefine.exe throws me into the installation instructions, where it says

your computer needs a 64-bit version of Java

and upgrading would get me Java v 18 (aka 8).

But when I start the refine.bat that’s right next to it, it works fine with the java version that I have:

Using refine.ini for configuration
Java 17 (17.0.3)
Getting Free Ram...
12:07:34.102 [            refine_server] Starting Server bound to '' (0ms)
12:07:34.124 [            refine_server] refine.memory size: 1400M JVM Max heap: 1468006400 (22ms)

I’m on Windows 10. I’d rather not run two versions of java on one machine

Please advise.

Hi @RolfBly did you download the “(including Java)” or “(without Java)” version of OpenRefine?

Hi @ostephens, I downloaded the “without Java” option, since I already have the JDK installed and that worked ok with several earlier versions.

I suspect that the issue you are seeing is linked (or the same as) this bug report OpenRefine 3.7 beta 2 for Windows not executing · Issue #5583 · OpenRefine/OpenRefine · GitHub - I’ve posted on that issue to see what the status is

I’m pretty sure the note about needing a 64-bit version of Java in the documentation is a red-herring. This note is about seeing a change of behaviour on increasing the memory allocation - which you don’t mention doing.

Overall I’m puzzled that this particular part of the documentation is where you get taken to. Could you confirm:

  • Whether that URL just opens automatically when you run openrefine.exe?
  • Confirm it takes you directly to the URL https://openrefine.org/docs/manual/installing#using-openrefineexe

Thanks Owen. I did look for this in the issues on GitHub, but did not find this one. Hmmm…

@RolfBly perhaps you could try launching OpenRefine with this debug option:

openrefine.exe --l4j-debug-all

This should produce a debug log which might help us understand why the .exe refuses to work with your existing Java install.

Hi Antonin, here’s the output, and some additional info.

C:\Program Files\OpenRefine\openrefine-3.7.2>openrefine.exe  --l4j-debug-all
OpenRefine - packaging: This application requires a Java Runtime Environment 11 - 17

C:\Program Files\OpenRefine\openrefine-3.7.2>java --version
openjdk 17.0.3 2022-04-19
OpenJDK Runtime Environment Temurin-17.0.3+7 (build 17.0.3+7)
OpenJDK 64-Bit Server VM Temurin-17.0.3+7 (build 17.0.3+7, mixed mode, sharing)

C:\Program Files\OpenRefine\openrefine-3.7.2>echo %JAVA_HOME%
C:\Program Files\Eclipse Adoptium\jdk-\

JAVA_PATH was not set, but it doesn’t make any difference when set. I tried. Also, the packaging warning appears with and without --l4j-debug-all. It launches the browser and displays the message.

Anything else that I can do, please let me know.

Amazing! There should be a launch4j.log file created alongside the .exe now - it would be great if you could share that.

Oops, sorry. I was expecting the log to appear in the console, but no. Here you go.

launch4j.zip (1,3 KB)

Thanks, that’s super useful. Looking at it, it seems that your version of Java is internally detected as 1.017.000_003, which is newer than our declared max Java version of 1.017.000, hence launch4j refuses to take it into account and start OpenRefine with it.

That seems to mean that in practice, the maximum version we specify to Launch4j (Java 17) is actually treated as a strict upper bound and not an inclusive one.

We should likely bump this maximum version or even remove it entirely, as Java runtimes are pretty good at maintaining backwards-compatibility. I think we should be able to do this soon, and perhaps release it as 3.7.3.

Thank you. If there’s a beta I you’d like me to test it with, please let me know.