Java Development

Java systems, built
and modernized

We build Java systems and modernize older ones, moving them from Java 8 and early Spring Boot to current releases in planned steps, so your systems stay supported as they grow.

Thanks, we’ll be in touch soon.

{{ heroStatus }}

You’re in good company

A few of the companies we’ve worked with.

When every update needs another first

Many businesses rely on a Java system that has grown for years, often on Java 8 and an early Spring Boot, the framework it’s built on: the ready-made base that handles what most business apps share. The people who built it may have moved on.

Its Spring Boot version is past the end of its free support. A current Spring Boot needs Java 17 or later, and the new names Java’s enterprise parts now go by, so one small update brings several others with it, and it gets put off. Meanwhile, how long its Java keeps getting fixes depends on its build, the copy of Java it runs on, since Java comes from several providers, each with its own dates.

What we build

New Java back ends, and older Java systems brought onto current releases in planned steps, each tested as it goes.

  • New Java back ends and APIs

    Business systems, and the services behind your web and mobile apps, built in Java with Spring Boot, with APIs: the agreed ways other software asks them for data.

  • Moves to a current Java

    Older systems moved from Java 8 or 11 to a current Java release by release, each step planned from Java’s own release notes and tested before it’s taken.

  • Moves from Spring Boot 2

    Spring Boot 2 apps moved to a current Spring Boot, with Java 17 or later and the new jakarta names, following Spring’s own migration guides.

  • Moves off older application servers

    Java EE apps that run on an application server, the software that hosts them and supplies their enterprise parts, brought onto current Jakarta EE or onto Spring Boot, in stages.

  • Services split out where it helps

    A part made into a service of its own only where it needs to change or grow on its own. Elsewhere, one well-organized app is often simpler to run.

  • Connections to your other systems

    Connected to the platforms your business runs on, from CRM and ERP to finance, with one system in charge of each detail, so everyone works from the same information.

  • Tests that record how it works today

    Automated tests that capture what the system does now, written before anything changes, so a step that alters what it shouldn’t is caught before release.

  • Steadier services under load

    Virtual threads, part of Java since Java 21, where a service spends most of its time waiting on databases or other systems: it can handle many waiting requests at once, each in code written the simple way.

  • Packages kept current and secure

    Each package, the ready-made code a system builds on, checked for known vulnerabilities and license terms, and kept up to date, with clear rules for adding new ones.

From one long-term release to the next

Java brings out a new release every six months, and every two years one of them is a long-term support release, which the providers of Java keep fixing for years. So an app can move from one long-term release to the next: Java 8, 11, 17, 21, then 25.

How long each is supported depends on who provides the build of Java an app runs on, since each provider sets its own dates and terms. So the first question is which Java an app runs on, and whose. What changes at each step is set out in advance, in Java’s own release notes, so every step can be planned and tested before it’s taken.

Java 8 to 11

The parts of Java EE that came with Java, such as XML binding and web services, were taken out.

An app that uses them adds them back as packages of its own.

Java 11 to 17

Java’s internal code is closed to apps, so packages that reached into it need newer versions.

And current Spring Boot needs Java 17 or later.

Java 17 to 21

Virtual threads arrive: a server app can handle many waiting requests with code written the simple way, one request to a thread.

Java 21 to 25

The Security Manager, an old way of limiting what code may do, is switched off for good.

An app that still relies on it needs another way.

Step {{ rtN }} of 4

Start at the step from the Java your app runs on.

{{ rtStatus }}

From javax to jakarta

The enterprise parts of Java, for things like web requests, databases and messages, began as Java EE, with names that start with “javax”. When Java EE became Jakarta EE, those names changed to start with “jakarta”, from Jakarta EE 9, a release that changed the names and little else.

Spring Boot 3 and later, and current application servers, use the new names. So an app moving to them changes the name in every place it uses one, and moves to versions of its packages that use them too. The change is wide rather than deep, and tests show when it’s complete.

Start with a review of your Java system

The review covers its Java version, and whose build it runs on; its framework and application server versions, and where each stands on support; the steps between it and a current long-term release, and what each involves; where the change from javax to jakarta applies; its packages, and which have versions for the next step; its tests, and what they cover; and how it’s built, released and watched once live.

Building something new? The first step is one service or flow, built and released early, so it’s in use before the rest is built.

Either way, you get a written review and a proposal for the first step.

  1. Which Java version should we be on?

    A current long-term support release, with a Spring Boot version that still gets free fixes. As of October 2026, those releases are Java 17, 21 and 25, the newest being Java 25, and current Spring Boot needs Java 17 or later. How long each is supported depends on your build’s provider, so we check yours.

  2. Do we have to pay to use Java?

    Not necessarily. Java is open source, and builds of it are available free under an open-source license, as jdk.java.net sets out. Oracle’s own builds come with their own terms, which have changed over the years, so it depends on the build you run. We find which builds your systems use, and can move them to the one you choose and test them on it. Your legal team has the final word.

  3. Do we have to rewrite our app to leave Java 8?

    No. What changes at each step is set out in Java’s own release notes, so an app can move one long-term release at a time, changing what each step needs and keeping the rest.

  4. How long does a move take?

    It depends on the system’s size, its tests and its packages. The review sets out each step and what it involves before any work starts.

  5. Do you work with Spring Boot and Jakarta EE?

    Yes, both, and with older Java EE apps on application servers, whether they stay on one and move to current Jakarta EE, or move to Spring Boot.

  6. Should we split our app into microservices?

    Only where a part needs to change or grow on its own. One well-organized app is often simpler to run and to change, and a part can still be split out later, once there’s a reason to.

  7. What are virtual threads, and do we need them?

    Virtual threads, part of Java since Java 21, let a server app handle many requests at once while each keeps its own simple thread. They help services that spend much of their time waiting on databases or other systems. They don’t make code itself run any faster, so a service that’s busy calculating gains little.

  8. Can you work with Kotlin in our app?

    Yes. Kotlin runs on the same platform as Java, and the two can sit in one app, each calling the other’s code.

  9. Can you take over our existing Java system?

    Yes. We start by running it as it is, reading its code and its tests and noting the versions and builds it’s on, and the review sets out what to do first. Where we begin is your call.

  10. Who hosts it?

    A Java system can run wherever suits your business. Hosting and the platform beneath your software are a service of their own.

    Cloud, DevOps & Security
  11. How do you keep it secure?

    First, on versions still in support: a build of Java that still gets fixes, a Spring Boot version still in its free support, and packages kept current, each checked for known vulnerabilities. Threat modeling, code review and checks in every build sit around that.

    Application Security
  12. What does it cost?

    It depends on what the system has to do, how big it is, and whether it’s new or moving to current versions. You get a written proposal before any work starts: the scope, the price or rate, and how you pay.

    Pricing
  13. Can we hire Java developers for our own team?

    Yes. Within 48 hours of your request we introduce Java developers suited to your system, Spring Boot included, all working in your time zone, and the choice of who joins is yours.

    Hire Java Developers

Java is a registered trademark of Oracle and/or its affiliates. Spring Boot and Jakarta EE are open-source projects. Webair isn’t affiliated with or endorsed by Oracle or either project.

Let’s build it better

Whether your system runs on Java 8, on a current Java or hasn’t been built yet, a short call finds where to start.

Thanks, we’ll be in touch soon.

{{ ctaStatus }}