# For Java libraries, what bytecode version do we need to release it as?

**URL:** <https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744>\
**Category:** Development\
**Created:** [January 20, 2022, 4:48am UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744 "2022-01-20T04:48:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![lessthanoptimal](https://avatars.discourse-cdn.com/v4/letter/l/9de053/32.png) [@lessthanoptimal](https://discourse.processing.org/u/lessthanoptimal)\
**Post date:** [January 20, 2022, 4:48am UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744/1 "2022-01-20T04:48:44Z")

</div>

I’m updating the BoofCV wrapper for Processing. It recently dropped Java 8 byte code in favor of java 11 byte code. Can I release a Processing library using Java 11 bytecode?

---

<div class="post-metadata">

**Author:** ![monkstone](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/monkstone/32/64_2.png) [@monkstone](https://discourse.processing.org/u/monkstone)\
**Post date:** [January 20, 2022, 6:44am UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744/2 "2022-01-20T06:44:18Z")

</div>

Such a library would require to run with at least processing-4.0, then you might as well go whole hog to java 17, which latest processing-4.0 supports.

---

<div class="post-metadata">

**Author:** ![lessthanoptimal](https://avatars.discourse-cdn.com/v4/letter/l/9de053/32.png) [@lessthanoptimal](https://discourse.processing.org/u/lessthanoptimal)\
**Post date:** [January 20, 2022, 4:01pm UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744/3 "2022-01-20T16:01:43Z")

</div>

Is Processing-3 java 8? Any point in maintaining compatibility with Processing-3?

---

<div class="post-metadata">

**Author:** ![monkstone](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/monkstone/32/64_2.png) [@monkstone](https://discourse.processing.org/u/monkstone)\
**Post date:** [January 20, 2022, 4:38pm UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744/4 "2022-01-20T16:38:09Z")

</div>

Processing-3.5.4 is java 8, and uses an outdated version of [antlr](https://www.antlr.org/), but some people still use it for compatibility reasons. Processing-4.0 uses an updated version of antlr (supports java 11), however the most recent version of processing-4.0 is compiled with and supplied with its own jdk-17

---

<div class="post-metadata">

**Author:** ![lessthanoptimal](https://avatars.discourse-cdn.com/v4/letter/l/9de053/32.png) [@lessthanoptimal](https://discourse.processing.org/u/lessthanoptimal)\
**Post date:** [January 20, 2022, 5:15pm UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744/5 "2022-01-20T17:15:30Z")

</div>

Well I guess if Processing 4 has hit critical mass then I’ll post the update, which will break Processing 3. If I get some hate mail I can just revert I guess.

---

<div class="post-metadata">

**Author:** ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)\
**Post date:** [January 28, 2022, 1:16am UTC](https://discourse.processing.org/t/for-java-libraries-what-bytecode-version-do-we-need-to-release-it-as/34744/6 "2022-01-28T01:16:00Z")

</div>

I always postpone new Processing versions; so I’ll be sticking w/ P3 until P4 reaches actual bug-free maturity. 🐛

From my experience that takes many months after “stable” release; likely around version 4.1.x. 📅
