# What is the highest compatible Java version for OR?

**URL:** <https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959>\
**Category:** Support and Helpdesk\
**Created:** [December 13, 2024, 10:24pm UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959 "2024-12-13T22:24:05Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![RolfBly](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/rolfbly/32/234_2.png) [@RolfBly](https://forum.openrefine.org/u/RolfBly)\
**Post date:** [December 13, 2024, 10:24pm UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/1 "2024-12-13T22:24:05Z")

</div>

The [installation instructions](https://openrefine.org/docs/manual/installing) still recommend Java version no higher than 17.

> OpenRefine works with Java 11 to Java 17 for OpenRefine 3.7.

Meanwhile, I'm on OR 3.8 and Java versions are now in their 20's.

Any info on the highest possible Java version compatible with OR?

The reason I'm asking is that I need to run some other stuff that needs Java 8 (aka 18, I believe).

---

<div class="post-metadata">

**Author:** ![AtesComp](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/atescomp/32/1100_2.png) [@AtesComp](https://forum.openrefine.org/u/AtesComp)\
**Post date:** [December 14, 2024, 5:48am UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/2 "2024-12-14T05:48:49Z")

</div>

FYI, Java 8 is...Java 8, a.k.a. 1.8. Very old.

I believe Java 20 may have some breaking changes for libraries OR uses. I'd like it updated as well to use 20 or better as some of the libraries have security issues that are fixed with higher Java versions. Some of the libraries may not yet be 20 compatible.

Many OSs let you install multiple Java versions and switch between them with a utility or by using custom .bat files that set the JAVAHOME env variable to the proper version before starting the Java app.

---

<div class="post-metadata">

**Author:** ![thadguidry](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/thadguidry/32/653_2.png) [@thadguidry](https://forum.openrefine.org/u/thadguidry)\
**Post date:** [December 14, 2024, 11:30am UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/3 "2024-12-14T11:30:33Z")

</div>

One of the biggest reasons is because of Jetty and Butterfly migrations needed. For now, our current minimum compile target for releases is Java 11, until the work is completed on our Jetty 10 to 11 to 12 double migration that @tfmorris is working on with impacts along with Butterfly 2.0

> <https://github.com/OpenRefine/OpenRefine/pull/6077>
>
> Fixes #{issue number here}
> 
> Changes proposed in this pull request:
> \- Update t…o Jetty 11 and Jakarta Servlet 5
> \- Update Apache commons file uploader to track Servlet API changes
> \- Update to Velocity 2.3
> 
> This is implemented and lightly tested and appears to work, but it's a breaking change for all extensions, so I'm not convinced it's needed until there are other breaking changes needed (and perhaps not even then).

> <https://github.com/OpenRefine/OpenRefine/pull/6078>
>
> Fixes #{issue number here}
> 
> Changes proposed in this pull request:
> \- 
> 
> \*\*In…complete\*\* update to Jetty 12 which can be used as a starting point for experimentation

---

<div class="post-metadata">

**Author:** ![RolfBly](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/rolfbly/32/234_2.png) [@RolfBly](https://forum.openrefine.org/u/RolfBly)\
**Post date:** [December 15, 2024, 7:06pm UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/4 "2024-12-15T19:06:48Z")

</div>

Thanks for the clarification. Guess I'm going to explore how to have different java versions alongside each other.

---

<div class="post-metadata">

**Author:** ![AtesComp](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/atescomp/32/1100_2.png) [@AtesComp](https://forum.openrefine.org/u/AtesComp)\
**Post date:** [December 15, 2024, 7:32pm UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/5 "2024-12-15T19:32:49Z")

</div>

Correction: JAVA\_HOME

---

<div class="post-metadata">

**Author:** ![RolfBly](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/rolfbly/32/234_2.png) [@RolfBly](https://forum.openrefine.org/u/RolfBly)\
**Post date:** [December 15, 2024, 8:13pm UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/6 "2024-12-15T20:13:00Z")

</div>

Thanks, no problem. I found [this tutorial](https://www.happycoders.eu/java/how-to-switch-multiple-java-versions-windows/). Seems to fit my needs.

---

<div class="post-metadata">

**Author:** ![thadguidry](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/thadguidry/32/653_2.png) [@thadguidry](https://forum.openrefine.org/u/thadguidry)\
**Post date:** [December 15, 2024, 11:46pm UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/7 "2024-12-15T23:46:32Z")

</div>

@RolfBly If you are using Windows OS, then you can download and run our Windows release with embedded Java. That way it won't need or disturb your existing Java installation. Also, you can run OpenRefine from the command line with `refine.bat`, and in doing so it will use the settings you have configured in the `refine.ini` where you can take a look and uncomment `JAVA_HOME` or add or modify any more that you need.

---

<div class="post-metadata">

**Author:** ![RolfBly](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/rolfbly/32/234_2.png) [@RolfBly](https://forum.openrefine.org/u/RolfBly)\
**Post date:** [December 16, 2024, 11:05am UTC](https://forum.openrefine.org/t/what-is-the-highest-compatible-java-version-for-or/1959/8 "2024-12-16T11:05:11Z")

</div>

Ah, good to know, thanks Thad.

The thing is that I haven't kept track of what needs Java, let alone what exactly needs which Java version. Oh well. I can work it out, no problem.

Cheers!  
Rolf
