OpenJDK Java

Supported Images

Reviews from AWS customer

10 AWS reviews

External reviews

4 reviews
from

External reviews are not included in the AWS star rating for the product.


    Aradovan Adwan

Virtual threads have transformed asynchronous teaching and enterprise development workflows

  • May 07, 2026
  • Review provided by PeerSpot

What is our primary use case?

My main use case for OpenJDK Java is for various development purposes including desktop, web, integration patterns, interoperability, and everything that is usually included in standard enterprise projects and small demo examples that I use in teaching while instructing students at my courses.

What is most valuable?

The best features OpenJDK Java offers depend on the version. Usually, the last few versions included virtual threads and all the optimizations that benefit applications including Spring applications, etc. Nowadays you don't need to rely on platform threads. You can use virtual threads without a problem and create them in vast numbers, not just hundreds, because asynchronous applications are very important for creating an environment in which you can be responsive, and especially in this AI age where you can combine everything together and try to provide your users with the best features and best capabilities of your system. Of course, the latest version includes the Vector API. I'm looking forward to actually using the best features related to that and all those small perks that are added to every single version, such as lambda expression optimizations, HTTP client, JavaFX that I use, and everything that helps you to be productive and to follow the best practices such as SOLID principles, design patterns, and clean code.

OpenJDK Java has positively impacted my organization because the word open actually opens everything more to the community. Usually people don't want to be vendor-locked. That's why they need this opportunity to choose their own platform to create an environment where they feel the most comfortable and of course, the most productive. Every next version of OpenJDK, for example, the last few years we experienced optimization in garbage collectors, etc. Someone can also include their own garbage collector or choose from the list of available and supported garbage collectors. They can have this support that will give them full control over their environments. Everything that is added to the stack every six months also makes the whole community vibrant. We eagerly wait for those short-term releases every six months, but at the end of the day, the latest versions are those that have the most impact to the community.

What needs improvement?

I think that we need to follow the latest trends and include even more optimization in the language to match the best performing languages so we can get more with less code because Java often requires some kind of boilerplate to achieve many things, but other languages don't require that. This is perhaps the only thing that will naturally evolve in the future. Also since Java was released in 1995, nowadays we celebrate 30 to 31 years of Java existence on the market. There are certainly things that can be optimized. This release cycle every six months is a good one, so I think newer features will be added and of course, older features will be removed. For example, I really don't prefer to use primitive types such as int, long, short, and boolean. I would rather use records or reference types. This could be something that might be more promoted to actually use other reference types rather than using primitive types. I understand how deep this is within the language, so it cannot be extracted or cut off from the platform. However, it's our responsibility to promote the best practices and to use, for example, optional types instead of null references to avoid null pointer exceptions. This is something I really appreciate in Java because avoiding common pitfalls and mistakes helps developers to be more productive.

For how long have I used the solution?

I have been using OpenJDK Java since I started programming in 2003 when I was a student.

Which other solutions did I evaluate?

I would like to see some alternative tools that will help developers to start development with AI assistance because JetBrains IntelliJ is something that is really powerful, but when you are no longer a student, you need to pay for the tooling. Before, let's say 20 years ago, we had Eclipse or JDeveloper environments, but they are not keeping pace with the competitors. That's why this open keyword should also popularize the whole Java enterprise and community, etc. It will help to have a tool that will be competitive to the other elements because, for example, we had the Scene Builder for JavaFX that was maintained by Oracle, but they abandoned it. So this parallel thread, let's say Gluon JavaFX is now actually producing good results. That's why this branding is very important. If you actually stand behind a tool that will be created for this new era of development with the help of AI and live coding, it could help the platform to be more popular and of course, involve more than 10 million developers. Although Java is already over 30 years old, it will still be a main competitor on the market. For all enterprise development solutions, Java as an open-source technology could still be the number one choice and stay for a long time as number one.

What other advice do I have?

An example of how I use OpenJDK Java in my teaching and enterprise projects is that since everything I teach is related to Java, I create an object, for example, in the IntelliJ JetBrains environment. Then when a new Java version is released, perhaps version 25 or 26 every six months, I download it through this tool, JetBrains IntelliJ, and configure my project, mostly Spring projects or vanilla Java projects without any specific frameworks to establish the basic functionality, and then I start developing all the features that are required for this purpose.

At the end of the day, Java is a platform and many open-source libraries and projects are added to the technology stack and then we are implementing enterprise applications, web applications, or even console applications just to show that this is something that can cover everything. With AI, it's much easier because the best models are using the latest Java versions without any problems, so you can immediately be very productive and at the end of the day, you can deliver your application much faster than you could five or six years ago.

I want to show many examples of performance, measurements, reports, and automation such as unit testing, CI/CD, and especially integration with AI regarding how I use OpenJDK Java in my teaching and development.

The efficiency of virtual threads is the first thing that comes to mind when I talk about how virtual threads or any of these features have changed the way I and my students develop applications. Instead of creating platform threads that are very heavy for the system because the memory footprint is 1 MB to 2 MB per thread, with virtual threads, you actually have a footprint of 1 KB, which means that you can create many threads and they can be synchronized, especially if you use asynchronous operations or prefer to have non-blocking changes to every resource that you are contacting with. This is something that can be done much more easily and you can create a pool of threads that you use efficiently, so you can be much more productive when you use those things. Of course, your system can utilize the hardware resources much more efficiently and that's why this is the future of asynchronous parallel development. For example, when you synchronize virtual threads with your main thread in JavaFX UI, you can actually create something that will run in the background without taking too much processor time and actually increase the responsiveness of every application.

I want to highlight especially the newest features that are included in the latest releases, such as the Vector API, because I tested the Vector API a few years ago when it was in the incubation period. It was still promising to actually use some features of CPUs to even better optimize the processing of large data. Especially nowadays we use many datasets when we prepare the datasets to train our LLM models. This is something I would like to highlight and I'm looking forward to getting the final version so I can play with it in my own use cases.

My advice for others looking into using OpenJDK Java is that they need to compare their own solutions to OpenJDK Java and then decide for themselves because it's very important to have a choice, not to be vendor-locked. You should have a choice and compare how good this is accepted, how easy you can actually get all the information, and how good it is accepted across the AI landscape. If the AI generates many examples that can be easily integrated or run on OpenJDK Java, that's the way to go. I give this review a rating of 9 out of 10.


    Himanshu Joshi

High‑throughput data pipelines have processed telecom records efficiently and meet performance goals

  • May 02, 2026
  • Review from a verified AWS customer

What is our primary use case?

My main use case for OpenJDK Java is developing a telecom product which requires OpenJDK 21 with Apache Kafka. We are using Apache NiFi, and that was the major requirement for OpenJDK because we were using the Apache NiFi latest version which uses Java 17 and above versions.

A specific example of how OpenJDK Java fits into our telecom product is that Apache NiFi requires Java 17 and above versions, and OpenJDK is a free version which can be used. We use it and also use virtual threads for Java 21, so we benefit from the features of OpenJDK.

What is most valuable?

The best features OpenJDK Java offers are that it is open source and all the latest Java features can be used in OpenJDK. We used OpenJDK 21 version with those features, including virtual threads and strings which are also part of those features.

The most valuable open-source aspects and latest Java features for us are virtual threads which were the most frequently used in our application.

OpenJDK Java has improved our organization because it has some optimization techniques. Since our application was a high throughput application, we utilized these optimizations. We also make use of other Java features which are widely used in Java 17 as well.

What needs improvement?

OpenJDK Java already has so many features which are not part of other languages. As time evolves, OpenJDK is already getting enhanced with many features including Java Streams. We might need to include many libraries which are part of Python and are not currently part of OpenJDK. This would be a way to improve OpenJDK.

The needed improvements for OpenJDK include documentation and support which is already good from the OpenJDK side, and I do not find any problem currently. The OpenJDK community is not what we had earlier in the Java community, but it is acceptable. OpenJDK is already a part of our work.

For how long have I used the solution?

I have been using OpenJDK Java for around 1.5 years.

Which solution did I use previously and why did I switch?

I do not think we were using a different solution as we started using OpenJDK 21 when I joined this project within our organization which was a product development. The upper management was using this only.

What was our ROI?

I have seen a return on investment as I think a lot of money has been saved, but I do not have that number currently because higher management handles that in our organization.

What's my experience with pricing, setup cost, and licensing?

My experience with pricing, setup cost, and licensing was good.

Which other solutions did I evaluate?

I do not have the answer to whether we evaluated other options before choosing OpenJDK Java because I have been part of a development team, and higher management only chose this. We made use of it.

What other advice do I have?

The optimizations impacted our organization significantly since we were using Apache NiFi with OpenJDK 21, and our application throughput was really high. We were able to process 7,000 records per minute, so the throughput was really high and the performance was also good. The JVM was not running high and the performance was really good. I would rate this product a 9 overall.

Which deployment model are you using for this solution?

Hybrid Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?


    reviewer2827548

Building diverse applications has empowered long-term innovation and reduced infrastructure costs

  • April 27, 2026
  • Review from a verified AWS customer

What is our primary use case?

My main use case for OpenJDK Java is any kind of application from server-side to JavaFX user interfaces to experiments with electronics on Raspberry Pi; there are many various ways of using OpenJDK Java.

A specific example of a project where I used OpenJDK Java is as one of the maintainers of the Pi4J project, which is a library that allows Java developers to interact with electronics connected to a Raspberry Pi. This is one of the main projects that I'm involved in as a pet project, where I also write all the documentation and the release notes for the Azul releases of the OpenJDK Java builds.

What is most valuable?

The best features OpenJDK Java offers are the ongoing evolutions and the many new features and improvements under the hood. Additionally, there is a very great community building amazing libraries that can do almost everything you can think of, and all these people are also very reachable at conferences and online, sharing a lot of great content. The tools are great, allowing you to build applications that are reliable, fast, and can be deployed on small servers or large instances. You can do desktop applications, and it's really the wide variety of things you can do with it.

OpenJDK Java has positively impacted my organization by allowing us to build whatever we want. There are either libraries available to create any kind of application, or it's very easy to add functionality to solve specific issues or even create a library that you can share with the community to help others.

Specific outcomes that show how OpenJDK Java has benefited my organization include that with Azul, we have a lot of data about that. For instance, if you are using Kafka running on the Java runtime and you switch to another distribution of the Java runtime, such as the Zing runtime, then you can achieve up to a 30% cost reduction because you need fewer servers or a smaller deployment environment to achieve the same load and reduce your costs.

What needs improvement?

OpenJDK Java could be improved in that there is a lot ongoing, and sometimes people complain that evolutions within Java are too slow. However, they are slow because they are really thought through, and any new feature that gets added to Java has been proven by the community to be the right way to solve a new way of thinking, methodology, or new functionality. It's designed to ensure Java stays backwards compatible while also making sure that new features can benefit from recently added elements. Thus, there is a lot of thought going into that. It could go faster, but on the other hand, I'm very happy with the stability that is consistent within OpenJDK Java.

For how long have I used the solution?

I have been using OpenJDK Java for 20 years.

What do I think about the stability of the solution?

OpenJDK Java is definitely stable.

What do I think about the scalability of the solution?

OpenJDK Java's scalability depends on your environment and your use case. That said, scalability is one of the main goals and achievements of Java, as it runs from very small instances to the largest possible deployments.

How are customer service and support?

The customer support depends on which company you work with. For instance, Azul has really great customer support. I would rate the customer support a 10.

Which solution did I use previously and why did I switch?

I did not previously use a different solution before OpenJDK Java.

What was our ROI?

I have seen a significant return on investment from using OpenJDK Java. There is definitely a big cost reduction if companies move from Oracle Java to either OpenJDK Java, which is totally free. You can get a lot of different distributions, and on the other hand, if you do need support, then Azul Zulu, for instance, as a core product, brings a lot of cost reduction compared to Oracle Java licensing.

Which other solutions did I evaluate?

I continuously compare all the OpenJDK Java distributions before choosing OpenJDK Java, and I'm very happy with the Azul Zulu one.

What other advice do I have?

My advice for others looking into using OpenJDK Java is to look around at the community and check out foojay.io, the website for Friends of OpenJDK, where you will see that there is a lot going on in the community. The tooling gets new features, cleaned up, and improved, with articles about how to use OpenJDK Java or any other distribution. Just look around, as there is great content available if you want to get into Java. My overall rating for OpenJDK Java is 8.

Which deployment model are you using for this solution?

Hybrid Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?


    reviewer2799558

Robust platform has supported secure wallet backends and reduced development costs

  • April 18, 2026
  • Review from a verified AWS customer

What is our primary use case?

My main use case for OpenJDK Java is to build Java backend code and backend logic. A specific example of a project where I used OpenJDK Java for backend logic is in my current organization, where we are using it to build our Deva code, which is an application that functions as a digital wallet.

In addition to my main use case, while studying, I used JDK to build backend logic for my personal project, which is a form-fill assist application.

What is most valuable?

The best features OpenJDK Java offers include its own garbage collection system, as it automatically removes unused objects, which is an important feature.

This feature has helped my development process because creating too many objects can lead to an out of memory situation, but the garbage collection efficiently deletes unused memory.

OpenJDK Java stands out for its portability, as it runs on a write once, run everywhere principle due to its virtual memory and JVM, which converts every code into machine code, making it helpful to run code on any device.

OpenJDK Java has positively impacted my organization by providing a large number of resources to find issues and creating a large environment that helps in many areas.

Having a large environment and many resources has helped my team specifically when we tried to use Redis components, as we could consult previous blogs to maintain it, which was helpful for integrating other components into our code.

What needs improvement?

To improve OpenJDK Java, I wish for more AI integrations and support for AI and API integrations, as we need AI capabilities to build using Java.

We would like to see better documentation of new features that are updated in OpenJDK Java.

It would be great to provide AI-related features and proper documentation to study OpenJDK Java.

For how long have I used the solution?

I have been using OpenJDK Java for around three years.

What do I think about the stability of the solution?

OpenJDK Java is very stable.

How are customer service and support?

The customer support for OpenJDK Java is very good, as they are happy to help us if we face any issues.

Which solution did I use previously and why did I switch?

We started our project with JDK only and did not previously use a different solution.

How was the initial setup?

We did not evaluate other options before choosing OpenJDK Java.

What was our ROI?

Since using OpenJDK Java, I believe the cost has reduced by up to fifty percent.

What's my experience with pricing, setup cost, and licensing?

I am not sure if we purchased OpenJDK Java through the AWS Marketplace as that is handled by our DevOps team.

I do not have prior experience with pricing, setup cost, and licensing for OpenJDK Java.

What other advice do I have?

OpenJDK Java has a large number of resources, allowing others to easily find solutions. I would rate this review as a nine out of ten.

Which deployment model are you using for this solution?

Private Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?


    Hussain Gagan

Building high-performance backend services has improved consistency and reduced operational overhead

  • April 16, 2026
  • Review from a verified AWS customer

What is our primary use case?

I have been using OpenJDK Java for around two years, mainly for building backend services and APIs in microservices architecture.

My primary use case with OpenJDK Java has been building scalable backend systems, including REST APIs, async job processors, and event-driven services.

One example is a booking system I worked on where we handled around 50,000 daily requests using OpenJDK Java with proper JVM tuning, which reduced API response times by about 30% and improved throughput significantly without increasing infrastructure costs.

Beyond APIs, I have also used OpenJDK Java for batch processing jobs and background workers.

What is most valuable?

The best features of OpenJDK Java in my experience include write-once, run-anywhere capability thanks to the JVM, along with powerful performance optimization and garbage collection tuning options for backend systems.

I have seen significant improvements in system stability and resource utilization thanks to OpenJDK Java's garbage collection and JVM tuning capabilities. For instance, in one project, we were able to reduce memory-related issues by over 50% by fine-tuning the JVM's garbage collection settings.

The open-source nature of OpenJDK Java is a significant advantage, giving flexibility to choose different builds such as Amazon Corretto or Red Hat builds. Additionally, the frequent release cycles help us adopt new features quickly.

OpenJDK Java has positively impacted our organization by helping us standardize our backend stack across teams, making onboarding easier. New developers could ramp up faster since Java and OpenJDK Java are widely known and well documented.

What needs improvement?

One area that could improve OpenJDK Java is official enterprise-grade support. While community support is excellent, sometimes companies still prefer vendor-backed guarantees.

The documentation for OpenJDK Java is good overall, but debugging JVM-level issues can still be complex for newer developers. Better, simplified guides around memory tuning and garbage collection would help.

For how long have I used the solution?

I have been using OpenJDK Java for around two years, mainly for building backend services and APIs in microservices architecture.

What do I think about the stability of the solution?

OpenJDK Java is extremely stable. We have had services running for months without restarts, handling high loads without any major JVM crashes.

What do I think about the scalability of the solution?

Scalability is one of OpenJDK Java's strongest points. With proper JVM tuning and containerization, we scaled services to handle 3x traffic spikes during peak hours.

Which solution did I use previously and why did I switch?

We were initially using Oracle JDK but switched to OpenJDK Java due to licensing costs and flexibility concerns, as OpenJDK Java offered the same core functionality without the restrictions.

How was the initial setup?

The experience with pricing, setup cost, and licensing for OpenJDK Java is straightforward and completely free since it is open-source. We usually install it via package manager or Docker images, making onboarding new services quick.

What was our ROI?

The ROI has been strong with OpenJDK Java due to zero licensing costs, stable performance, and reduced operational overhead, overall improving efficiency by around 25% across backend teams.

What's my experience with pricing, setup cost, and licensing?

We cut the licensing cost almost completely by moving from Oracle JDK to OpenJDK Java, saving roughly 20 to 25% annually on infrastructure.

Which other solutions did I evaluate?

Before choosing OpenJDK Java, we evaluated other options including Oracle JDK and some JVM alternatives, but most were either expensive or less flexible compared to OpenJDK Java.

What other advice do I have?

I have found that the learning curve for new developers adopting OpenJDK Java in our team is relatively moderate. They typically already have a background in Java, allowing them to get up to speed quickly and start contributing to our projects with some guidance and resources.

I have had a smooth experience integrating OpenJDK Java with other technologies, particularly Spring Boot and containerization tools such as Docker. OpenJDK Java works seamlessly with Spring Boot, allowing us to develop and deploy applications quickly and efficiently.

I handle security and updates for OpenJDK Java by regularly checking for updates and applying them as soon as possible, while also making sure to follow best practices for secure coding and configuration. I have found that using tools such as Docker and Kubernetes helps streamline the process of keeping our deployments up to date and secure.

We monitor and manage the performance of our applications running on OpenJDK Java using tools such as Java Mission Control and VisualVM, which provide detailed insights into memory usage, CPU usage, and other key metrics.

We have found OpenJDK Java to be highly performant and reliable compared to other Java distributions such as Oracle JDK, and in some cases, even more stable due to its open-source nature and community-driven updates. It has consistently delivered high-quality performance and reliability across various applications and deployments.

We handle version upgrades with OpenJDK Java by regularly checking for updates and applying them as soon as possible to ensure that we have the latest security patches and features.

Since OpenJDK Java is community-driven, we rely mostly on forums and documentation. For critical systems, we sometimes use vendor-supported builds for SLA coverage.

I would recommend starting with OpenJDK Java if you are building backend systems, as it is cost-effective and production-ready. I suggest investing some time in understanding JVM tuning early on.

OpenJDK Java is a very mature and reliable platform, giving enterprise-grade capabilities without the cost overhead, making it an excellent choice for most backend systems. I would rate OpenJDK Java a nine out of ten.


    reviewer2167305

Automation has improved reliability and development is delivering error-free tools

  • April 16, 2026
  • Review provided by PeerSpot

What is our primary use case?

My main use case for OpenJDK Java is developing software, and I have also worked with Java and Selenium for automating tasks.

How has it helped my organization?

OpenJDK Java has positively impacted our organization by helping us develop our tools and the software we use. We use Java very widely, and our applications are written in Java. Sometimes, with Java, we also use PowerShell codes, which I have integrated for automation purposes.

What is most valuable?

The best features that OpenJDK Java offers are the ease of using any other tools with Java; it is very easy and efficient, and troubleshooting in OpenJDK Java is the best thing you can say. It is very easy, and it will tell you where or what exact error you have. Additionally, OpenJDK Java is a pure object-oriented programming language.

Troubleshooting in OpenJDK Java has helped me in my work while using Eclipse as a tool, which supports multiple languages including Java, Python, and Selenium. In Eclipse, at the bottom of the page under the terminal, if there are any errors, you can see the errors, and it will indicate the line number or what mistake you have made, making it very easy. Even a non-technical person will be able to understand what that error is about.

Since using OpenJDK Java, the specific outcomes include that the Selenium automation I have done in Java on the client's home page has given us very good reliability, and after that, we never received any escalation or an email from the client that this page is down and no one is looking into it. OpenJDK Java is extremely awesome.

What needs improvement?

OpenJDK Java does not need any improvement; it is already the best in the market. I have not faced any issues nor noticed anything that needs improvement. It also supports multiple classes, and what we can do in OpenJDK Java is write multiple classes, which can all be integrated into a .jar file.

For how long have I used the solution?

I have been using OpenJDK Java for the last four years.

What other advice do I have?

My advice to others looking into using OpenJDK Java is to please go ahead and use it because it is the best. If you are using Python, then you understand the syntax is easy in Python, but the indentation is problematic, whereas OpenJDK Java is extremely awesome; we do not have an indentation issue, and the code is understandable and not that difficult. I rate this product a 10.


    Harshwardhan Gullapalli

Reliable parsing has transformed financial document workflows and supports accurate LLM extraction

  • April 07, 2026
  • Review provided by PeerSpot

What is our primary use case?

My main use case for OpenJDK Java revolves around incoming financial documents such as PDFs, scanned balance sheets, and trial balances from clients. Apache Tika, which runs on OpenJDK Java, parses those documents and extracts the raw text. From there, we pass that cleaned text into our OCR pipeline using Tesseract and then feed it into our large language models for structured extraction, such as account mapping and compliance classification. OpenJDK Java gives a stable, reliable foundation for that parsing layer.

One thing worth mentioning about my use case is that consistency is crucial for us. Financial documents are sensitive, and we need reliable parsing. OpenJDK Java-backed tooling provides that stability. We run it on Linux servers in production for over a year with minimal issues. The concurrent processing capability is also important because we often batch process multiple documents at once, and it handles that load without memory problems. It is not just about parsing; it is about having a dependable backbone that we can trust in the production environment handling real clients.

What is most valuable?

The best features OpenJDK Java offers, in my experience, include stability, ecosystem maturity, and solid performance. The biggest one for us is stability; it runs consistently. Once we set it up on our Linux infrastructure, it is rock solid, with minimal downtime and no unexpected crashes over the year and a half we used it. The second is the maturity of the ecosystem. Because it has been around for so long, there are incredibly robust libraries built on top of it, with Apache Tika being the perfect example for our use case. Finally, performance matters. Once the JVM warms up, the throughput for document parsing tasks is consistent and predictable, which is essential when processing batches. Those three things make OpenJDK Java valuable for us in the production financial document space.

OpenJDK Java has positively impacted my organization by significantly reducing parsing failures. Before standardizing on this stack, we dealt with manual workarounds for document format inconsistencies, where approximately 10 to 15 percent of incoming documents required manual intervention. Once we locked in Apache Tika and OpenJDK Java as our parsing foundation, that dropped to approximately 2 to 3 percent. That is a huge operational improvement for our team because it meant less manual rework and faster throughput for our clients. On the speed side, document processing time became predictable; we could reliably process a financial document from ingestion to structured output in under two minutes on average, meeting our client service level agreements. From a cost perspective, being open source meant avoiding licensing fees, freeing up budget to reinvest in our machine learning models and infrastructure. For the team workflow itself, the sustainability meant our engineers spent less time debugging parsing issues and more time on higher-value work, improving our LLM extraction logic and building new features. There was a genuine productivity gain.

What needs improvement?

The JVM startup time is noticeable for lightweight, one-off document parsing tasks; that warm-up overhead feels unnecessary compared to a Python script that starts instantly. In a high-concurrency microservices environment where containers are spun up frequently, that matters significantly.

On the developer experience side, managing Java versions across different environments can get messy. We encounter situations where local development is running one JDK version, staging is another, and production is different. Without proper tooling such as SDKMAN or Docker, it becomes a coordination headache. Better built-in versioning and consistency would help. Regarding documentation, the OpenJDK Java documentation itself is solid but quite dense and assumes a certain level of Java knowledge. For teams coming from other backgrounds such as mine, which has a lot of Python and JavaScript experience, the barrier to entry is steeper than necessary. More beginner-friendly getting started guides would be beneficial. Additionally, the JVM baseline memory usage is significant. For resource-constrained environments or when running multiple lightweight services, that overhead adds up. Lighter JVM variants exist, but they are not as well-documented or easy to adopt. Better guidance on choosing the right JVM flavor would smooth that out.

I choose a rating of 8 out of 10 for OpenJDK Java because it could reach a 10 if the JVM startup time was dramatically reduced, perhaps through better default configurations or a lightweight default build for serverless and containerized workflows where speed matters. Secondly, a streamlined, unified approach to version management and environment consistency built in would help eliminate the need for juggling SDKMAN, Docker, and multiple configurations. Lastly, better memory efficiency out of the box would be ideal. If OpenJDK Java could run with smaller baseline footprints without sacrificing performance or stability, it would be a clear winner across more use cases. While it is the best choice for stable, long-running backend services and document processing pipelines, it has trade-offs for lighter, more distributed architectures. Fix those, and it would be a 10 out of 10.

For how long have I used the solution?

I have been using OpenJDK Java for approximately one and a half years.

What do I think about the stability of the solution?

OpenJDK Java is stable. It has been rock solid for us in production. Over the one and a half years we have run it, we have experienced minimal unplanned downtime or crashes. The JVM itself is incredibly mature and well-tested across millions of deployments worldwide, which is vital for financial document processing where reliability is non-negotiable. We can depend on it.

What do I think about the scalability of the solution?

On scalability, OpenJDK Java is good but has nuances. For our use case of batch document processing, it handles concurrent requests well, allowing us to process multiple documents simultaneously without memory leaks or performance degradation. The garbage collection is solid once we understand how to tune it. However, scalability depends on your infrastructure approach. Horizontally, we can scale by adding more servers running OpenJDK Java instances. Vertically, there are limits since the JVM's baseline memory footprint means we cannot plug unlimited instances on a single machine. For our document volumes and processing patterns, we never hit those limits.

How are customer service and support?

The community support for OpenJDK Java is massive and active. When we encounter issues or have questions, Stack Overflow usually has answers. OpenJDK Java documentation itself is comprehensive, though it is dense and assumes some Java experience. For our team, coming from Python and JavaScript backgrounds, we had to do additional learning, but the resources are there. Specifically, the Apache Tika community has helped us greatly; the documentation for Tika is solid, with good examples, and the community forums are responsive. When we run into edge cases with parsing specific document formats, we typically find discussions or solutions within the community. The trade-off with open source is that we do not pay for dedicated support; however, we are also not dependent on the vendor support queue. We need to be more self-sufficient, but this approach works for our team. We troubleshoot, read documentation, check community discussions, and usually find answers within hours rather than waiting for support tickets.

Which solution did I use previously and why did I switch?

Before standardizing on OpenJDK Java, we used a more fragmented approach. We had a mix of Python-based text extraction tools and some proprietary PDF parsing libraries. The problem was inconsistency; different document formats failed unpredictably with different tools. We ended up with manual workarounds, with team members extracting data from PDFs that the automated pipeline could not handle reliably. We switched to OpenJDK Java and Apache Tika because we required something battle-tested and stable for production use with financial documents. The Java ecosystem had proven libraries that could handle edge cases and unusual document formats that were giving us trouble. Tika's maturity and the JVM's stability made it the right choice, simplifying our tech stack significantly. Instead of maintaining multiple parsing tools across different languages, we have one solid foundation that reduces operational complexity. In hindsight, it was absolutely the right decision; the consistency and reliability improvements justified the learning curve my team had to undergo coming from a Python-heavy background.

How was the initial setup?

We deployed OpenJDK Java on-premises. We run our OpenJDK Java infrastructure on Linux servers hosted in our own data center setup, which is important for our use case because we handle sensitive financial documents for clients including balance sheets, trial balances, and compliance data. Having on-premises infrastructure gives us direct control over data residency and security, crucial for client trust and regulatory compliance. We consider cloud options eventually; Docker containerization makes it theoretically portable to cloud environments if needed. However, we decided to keep it on-premises for data sovereignty reasons. The on-premises setup started well for us because our document volumes are predictable, allowing us to manage infrastructure costs directly. We do not need the auto-scaling flexibility that cloud would offer.

What was our ROI?

I have indeed seen a return on investment with OpenJDK Java, particularly in operational efficiency. As mentioned earlier, we reduced manual document processing interventions from around 10 to 15 percent down to 2 to 3 percent. That means our team of three document processors can handle approximately 40 to 50 percent more documents per week without adding headcount. Over a year and a half, that is a significant capacity gain without hiring additional people. On the cost side, being open source means we incurred zero licensing fees. For a financial document processing platform, that represents real money saved since commercial Java solutions would have cost us thousands annually in licensing alone. Development time is another critical metric; our engineers spend significantly less time debugging parsing failures and environment issues. I estimate we save approximately 15 to 20 percent of engineering time that would have gone to infrastructure maintenance, which we redirect toward building new features and improving our LLM extraction accuracy. The speed of processing a document from ingestion to final structured output in under two minutes means we meet aggressive client turnaround SLAs, translating directly to client retention and upsell opportunities.

Which other solutions did I evaluate?

We considered several alternatives before choosing OpenJDK Java. We explored a pure Python-based solution using libraries such as PyPDF2 or PDFPlumber for document parsing. The appeal was that our core application logic was already in Python, making for a simpler tech stack. The trade-off was in limitations with complex and scanned financial documents as those libraries are not as robust for edge cases. We landed on Apache Tika running on OpenJDK Java because it struck the right balance. It is mature, battle-tested for handling complex document formats, open source, meaning no licensing overhead, and the ecosystem is solid. Introducing Java into our stack meant stability and reliability gains justified the architectural decision.

What other advice do I have?

If someone is considering using OpenJDK Java, I advise being clear about your use case; OpenJDK Java is excellent for backend services, document processing, and financial systems where stability and long-term reliability are crucial but less ideal for lightweight microservices or serverless workloads where startup time is critical. Secondly, invest in proper tooling from day one; use Docker for environment consistency, SDKMAN for Java version management, and set up proper JVM tuning parameters early. Do not underestimate this investment; it saves months of friction later. Third, embrace the ecosystem; the Java ecosystem is mature and battle-tested. Proven solutions such as Apache Tika, Jackson, and Spring Boot should not be reinvented. Fourth, understand memory and performance tuning; the JVM is powerful but requires thoughtfulness around garbage collection and heap settings. Spend time understanding these basics upfront. Finally, if you come from a Python and JavaScript background such as my team, budget extra time for the learning curve. Java has different paradigms and conventions, but it is worth learning because the payoff in stability and production reliability is genuine.

OpenJDK Java proved itself in a real mission-critical scenario for us. Financial document processing is not forgiving; if your parsing fails, your entire downstream pipeline breaks. The fact that we can rely on OpenJDK Java and Apache Tika to handle that responsibility consistently over 18 months speaks volumes. I would emphasize the longevity factor; OpenJDK Java is backed by the Java community and Oracle, providing confidence that this platform will be supported and maintained for years to come. That is important when building systems that clients depend on. Furthermore, if you evaluate solutions for backend infrastructure or document processing, do not overlook OpenJDK Java just because it has been around for decades. Its age is actually a strength, not a weakness, signifying that the platform has been battle-tested in countless production scenarios, where bugs have been found and fixed, and the best practices are well established. I provided an overall rating of 8 out of 10 for OpenJDK Java.


    reviewer2805456

Open source tools have supported my Java learning and enabled cross platform development projects

  • April 02, 2026
  • Review provided by PeerSpot

What is our primary use case?

From my first or second semester, I have been using OpenJDK Java on my local PC as part of my college journey and academic learning. I have been using OpenJDK Java for personal projects and during my internship, where I also work on a project utilizing OpenJDK Java mainly for developing and testing Java-based applications such as those in banking sectors and many other systems.

In my third semester, I had one subject, OOPs, where I needed to perform practicals and create an application in Java. I mainly use OpenJDK Java because without it I cannot support my coding needs.

My application relies on OpenJDK Java, as my source code is in Java. Without OpenJDK Java, I cannot manage or run the application or source code because OpenJDK Java is the installer package that is needed. Otherwise, I cannot run my simple code.

For my internship, I only use OpenJDK Java for my college project. While working at my internship, I also needed OpenJDK Java for my college project. It is compatible with almost every development studio such as VS Code and IntelliJ IDEA, which is the Java software. I used both for my college project, starting with IntelliJ IDEA to run my source codes, and in the next semester, I had a subject on advanced Java, where I learned more about OpenJDK Java and Java.

Throughout many subjects in my college academic journey, I needed OpenJDK Java as part of my role as a support engineer. It provides almost all the core features required for Java development, including support for OOPs concepts. For instance, in one subject called OOPs, I needed JDK support to perform my Java programming. I also use OpenJDK Java for database work in DBMS with MS SQL, needing it to run their workbench.

What is most valuable?

OpenJDK Java offers open-source capabilities, which are significant because my laptop runs on Windows while my friend's system uses macOS. It is open-source and cross-platform, which is beneficial as it supports every system when changing the Windows operating system. Therefore, these two features are among the best for me.

I also appreciate the security updates provided by OpenJDK Java. When I download the JDK, it comes in a specific version, but subsequent updates resolve issues with earlier applications. It is continuously updating features, which is the best aspect of OpenJDK Java.

OpenJDK Java also has strong community support, making it the best option for me. OpenJDK Java has saved me time and effort, being one of my main resources that is free to use and helpful as a student. It provides almost all the core features required for Java development, including OOPs concepts, exception handling, file management, and database connectivity.

What needs improvement?

Currently, OpenJDK Java is perfect for me, and I do not think any updates are needed. It works perfectly, and I do not want to add anything else to OpenJDK Java.

For how long have I used the solution?

Since my first or second semester.

What do I think about the stability of the solution?

OpenJDK Java is stable in my experience.

What do I think about the scalability of the solution?

OpenJDK Java is completely scalable and fully reliable for me.

OpenJDK Java is fully scalable for my projects and organization.

How are customer service and support?

I find customer support to be perfect.

How was the initial setup?

I installed it on Ubuntu Linux, and the process was quite smooth using the default package manager.

What's my experience with pricing, setup cost, and licensing?

It saves me both money and time.

Which other solutions did I evaluate?

I did not evaluate other options before choosing OpenJDK Java.


    Aadarsh Mishra

Modern development has become faster and reusable with long-term support and rich language features

  • April 01, 2026
  • Review from a verified AWS customer

What is our primary use case?

OpenJDK Java is one of the open-source Java development kits that I use. With all the Java libraries included in the JRE, I can handle all cases regarding object-oriented programming. However, it does not include J2EE (Java Enterprise Edition). OpenJDK Java is used for Java development and can be utilized in Spring Boot, Spring framework, and other play frameworks.

OpenJDK Java provides nearly all the functionality that Java uses. When comparing OpenJDK Java to Java EE, OpenJDK Java offers better code reusability through OOPs features, class collections, and collection frameworks. These features also bring some J2EE capabilities through beans. A main feature is that OpenJDK Java has Long-Term Support (LTS). For example, Java 21 has long-term support, and Java 1.8, Java 11, and Java 17 also have long-term support. Additionally, there is no cost for development, whereas Java EE is a paid feature where beans are handled by Java. From Spring Boot and Spring framework, I can use OpenJDK Java effectively.

OpenJDK Java runs on Windows, Linux, and macOS across every type of operating system. Similar to Java, OpenJDK Java compiles with Java code into bytecode, which runs in the JVM machine. All the features included in JEE are already present, such as Java compile code, Java run program, Javadoc, and job running and debugging. Multithreading is supported by OpenJDK Java. These are powerful tools, and high performance is available. JIT compilation and adaptive optimization are also present, along with regular updates as a main feature.

Java typically updates twice a year, with updates occurring every six months. Regular updates include bug fixes that do not impact the code if I use LTS (Long-Term Support). If a small update comes, that is fine. If a big update comes, I can also handle it. LTS support will always be available as a key feature. Currently, Java 21 has LTS support, and any update that comes will support my code.

What is most valuable?

OpenJDK Java can be used for Java development in Spring Boot, Spring framework, and other play frameworks. OpenJDK Java provides code reusability through OOPs features, class collections, and collection frameworks. Long-Term Support exists in OpenJDK Java for versions such as Java 21, Java 1.8, Java 11, and Java 17. OpenJDK Java runs on Windows, Linux, and macOS. It compiles with Java code and supports multithreading, high performance, JIT compilation, and regular updates.

What needs improvement?

Bean optimization could be improved. When comparing Java 1.8, which has a basic structure with for loops, to the stream API, the libraries are beneficial but slower. A for loop is a single loop that runs at the core level, whereas the stream API does the same thing but with slightly lower performance. Several improvements could be handled: performance improvement, better garbage collector latency, cloud container awareness, and cleaner syntax. Additionally, lambda is complex for beginners, so the usage of lambda could be improved.

The world is moving toward generative programming and AI usage with agentic approaches. Developers should have better handling of automatic GC performance issues. When compiling anything and an error is thrown, I want developers to have better performance insights into how this error will occur. Through AI, they can debug more effectively. Currently, when errors come, they are not straightforward. Developers have to read between the lines. If AI explains the error response, that would be better. Additionally, code usability could benefit from AI agentic capabilities.

For how long have I used the solution?

I am currently using OpenJDK Java.

What do I think about the stability of the solution?

I do not think there are any stability issues. Java has a very large community, so if anything comes up, I am able to resolve it. In this AI era, most issues can already be resolved. I do not believe any challenges have come that cannot be overcome.

What do I think about the scalability of the solution?

I do not think there is any scalability issue in OpenJDK Java.

How was the initial setup?

I do not think there are any challenges with initial setup. However, when installing any application, everything should be set up automatically, similar to how Java is installed. There should be no need to write environment variables. They should already be set up in the system. At the beginner level, developers can only write the code and do not have to use environment variables at all.

What's my experience with pricing, setup cost, and licensing?

The API impact on OpenJDK Java is minimal. When using the Spring Boot framework or similar frameworks, most things and beans are handled by the Spring framework. OpenJDK Java supports method level functionality with no difference from J2EE. However, bean handling can be a consideration because J2EE handles beans more efficiently compared to other frameworks. J2EE uses better bean optimization. Apart from this, I do not think there is any other issue. Most libraries already support both J2EE and OpenJDK Java, so I do not think there is any other impact.

Regarding development impact, performance-wise, OpenJDK Java is faster. One of the best features is that I can change my code and create my own compiler. Whatever method I choose, I can modify the code in JIT within OpenJDK Java. This is not possible in J2EE as J2EE does not allow these things. In Java 1.8, I can also change the background code and library code as this is allowed.

What other advice do I have?

OpenJDK Java is open for everyone, every developer, and every company, and it is free of cost. There is no deployment cost or any such pricing. OpenJDK Java can be used for developing any type of software that uses API level functionality, such as backend software. I gave this review a rating of 8.5 out of 10. If a company is choosing Java tools, they should go for OpenJDK Java.


    Shailesh Shandilya

Centralized development has delivered fast, secure payment processing with strong community support

  • March 31, 2026
  • Review from a verified AWS customer

What is our primary use case?

OpenJDK Java is used centrally for developing back-end services like APIs, batch processing, and file processing. It is easy to integrate OpenJDK Java with any other product or other languages regarding cross-platform capabilities.

What is most valuable?

What stands out for me about OpenJDK Java is that it is good for processing fast and very efficient in memory management from a technical perspective. It is fast, reliable, and easy to develop any concept in the payment industry.

The community support in OpenJDK is very helpful for my development process. The community has helped me with information on the latest features they added, new encryption and decryption methods, and how the internal memory works. These are the pieces of information I can get from the community channels.

I see a benefit from the regular updates in OpenJDK, as it is beneficial when we face many challenges in development. The regular updates from Oracle provide patches to solve different challenges in terms of security and memory management. From a developer's point of view, it also makes tasks easier.

What needs improvement?

Regarding OpenJDK, I do see areas for improvement, though I cannot currently comment on potential improvements. I acknowledge that there is a chance for enhancement.

Comparing OpenJDK Java with Python and other scripting languages, I find it a bit bulky, as it takes a lot of effort to enable scripts in a system. While Python is good for small tasks and easy to deploy, OpenJDK Java requires more effort for similar tasks.

For how long have I used the solution?

I stopped using it in March 2025, which is more than a year back now.

What do I think about the stability of the solution?

OpenJDK Java is 100% stable and demonstrates no downtime or glitches.

What do I think about the scalability of the solution?

OpenJDK Java is scalable.

How are customer service and support?

Community support is available, and there is also technical support with many discussions happening in different communities since it is an open platform, offering a lot of assistance. In my case, community support has been sufficient, and I did not need to reach out to technical support for the product.

How was the initial setup?

Installation for OpenJDK Java is easy, with not much complexity in the steps.

What was our ROI?

I can observe savings in my ROI and categorize it as money-saving. If I quantify the savings, I see about 60% in money savings and 40% in time savings.

What's my experience with pricing, setup cost, and licensing?

In terms of licensing and pricing for OpenJDK Java, I find it affordable and not expensive.

What other advice do I have?

I have experience with TiDB Cloud as I have been using that product before. I am working right now with multiple vendors and not only with a particular database, as I am using front end and back end languages including React and Angular. I am currently writing some Python code and back end Java.

The languages I am using include Angular, React, Java, and Python. PowerCARD is the product I am currently working on, which is a card product and an HPS product.

I am using OpenJDK Java and confirm that I use OpenJDK Java. I have around 10 plus years of experience with OpenJDK Java. I work with the product not only as a user but also as a consultant, working as a consultant with the vendor.

APIs impact my development speed positively as it is fast and secure, and it is easy to integrate across platforms with different tools and technologies. Almost all the tools available in the market are Java JDK enabled, making integration with OpenJDK Java very easy.

The cloud-native capabilities in OpenJDK Java are beneficial for my projects, as about 80 to 90% of the projects I work on in the card and payment industry are running on OpenJDK Java. I work in a hybrid environment, using a mix of cloud and on-premises solutions.

I have solutions available on AWS Cloud, and OpenJDK Java is compatible with AWS and Azure, as I use both. As of now, I have not purchased anything from the AWS marketplace.

I give this review a rating of 8 out of 10.

Which deployment model are you using for this solution?

Hybrid Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?

Amazon Web Services (AWS)