This is a list of software and programming tools for the Java programming language, which includes frameworks, libraries, IDEs, build tools, application servers, and related projects.
Java frameworks
Libraries
- Apache Ant β build automation tool
- Apache Batik β SVG processing
- Apache Cayenne β object-relational mapping
- Apache Xerces β collection of software libraries for parsing, validating, serializing and manipulating XML.
- Applet β applet API
- Ardor3D β 3D graphics engine
- Bonita BPM β workflow engine
- Cassowary β constraint solving
- Checkstyle β static code analysis
- GNU Classpath β standard library implementation
- Colt β scientific computing and technical computing
- Commons Daemon β manages applications as daemons
- DESMO-J β discrete event simulation
- Diagrams.net β diagramming
- Disruptor β high-performance messaging
- Dom4j β XML processing
- Dynamic Languages Toolkit β support for dynamic programming languages on the JVM
- Echo β GUI
- Flying Saucer β XHTML/CSS rendering
- Formatting Objects Processor β XSL-FO to PDF
- H2 Database Engine β relational database
- IAIK-JCE β cryptography
- Internet Foundation Classes β legacy GUI
- JavaBeans β reusable component architecture for enabling encapsulation, events, and properties for software components
- JavaCC β open-source parser generator and lexical analyzer
- Java Class Library β standard library of Java and other JVM languages
- Java Native Access β provides Java programs easy access to native shared libraries without using the Java Native Interface
- Javolution β real-time computing
- Jblas β linear algebra
- JExcel β Excel API
- JFugue β music programming
- JMusic β music programming
- Joget Workflow β workflow engine
- JOOQ Object Oriented Querying β fluent API for SQL
- JPOS β financial messaging
- JUNG β open-source graph modeling and visualization
- LanguageWare β language processing
- LibGDX β game development
- Modular Audio Recognition Framework β collection of voice, sound, speech, text and natural language processing algorithms.
- ASM β bytecode manipulation
- Open Inventor β 3D graphics
- OpenPDF β PDF
- Parallel Colt β parallel computing
- Parboiled β parser
- PlayN β game development
- QOCA β constraint solving
- QtJambi β Qt bindings
- SLF4J β logging
- SWT β GUI
- SuanShu β numerical computing
- SwingLabs β GUI extensions
- UBY β natural language processing
- Undecimber β calendar
- XDoclet β attribute-oriented programming
- XINS β XML network services
- XStream β object serialization
Machine learning and AI
- Apache Mahout β scalable machine learning library focused on clustering, classification, and collaborative filtering
- Apache MXNet β deep learning framework with Java API support
- Apache OpenNLP β machine learning based toolkit for natural language processing of text
- Deeplearning4j β distributed deep learning library
- Deep Java Library β open-source deep learning framework developed by Amazon Web Services
- Encog β framework for neural networks, genetic algorithms, Hidden Markov model, and Bayesian networks.
- LIBSVM β Support Vector Machine implementation
- Mallet β machine learning toolkit for classification, clustering, and topic modeling.
- MLlib β distributed machine-learning framework on top of Apache Spark Core
- Neuroph β lightweight neural network framework
- Weka β collection of machine learning algorithms for data mining
Data mining
- Java Data Mining (JDM) β standard Java API for data mining
- Massive Online Analysis (MOA) β data stream mining with concept drift
Math and scientific libraries
- Apache Commons Math β general-purpose mathematics library including statistics, linear algebra, and optimization.
- Colt β high-performance scientific computing, including linear algebra and random numbers.
- Efficient Java Matrix Library (EJML) β dense and sparse matrix computations and linear algebra
- Easy Java Simulations β Open Source Physics project designed to create discrete computer simulations
- Exp4j β evaluates mathematical expressions at runtime
- GroovyLab β numerical computational environment
- Hipparchus β fork of Apache Commons Math with updated algorithms for statistics, linear algebra, and optimization.
- JAMA β numerical linear algebra library
- Jblas: Linear Algebra for Java (Jblas) β linear algebra library using native BLAS/LAPACK bindings
- Java Astrodynamics Toolkit β numerical library of software components for use in spaceflight applications for Java or MATLAB
- Matrix Toolkit Java (MTJ) β linear algebra library with BLAS and LAPACK support
- OjAlgo β optimization, linear algebra, and financial calculations.
- OptimJ β extension for mathematical optimization and constraint programming
- Parallel Colt β A parallel extension of Colt
- SuanShu β numerical analysis, linear algebra, statistics, and optimization.[1]
Integrated development environments
- See also: Java IDEs on Wikibooks
- Android Studio β IDE for Google's Android operating system
- BlueJ β educational IDE for teaching Java
- DrJava β lightweight Java IDE for beginners
- Eclipse IDE β open-source IDE with extensive plugin ecosystem
- Greenfoot β educational IDE
- IntelliJ IDEA β commercial and community editions from JetBrains
- JDeveloper β freeware IDE supplied by Oracle Corporation
- jGRASP β software visualizations
- MyEclipse β Java EE IDE
- NetBeans IDE β Apache NetBeans
- Visual Studio Code β general-purpose editor with Java extensions
Online IDEs
Text editors with Java support
Build tools and package managers
- Apache Ant β automating software build
- Apache Ivy β subproject of Apache Ant
- Apache Maven β build automation and dependency management
- Boot β build automation for Clojure
- CMake β build tool with limited support for java[2]
- Gradle β modern build automation tool
- Go continuous delivery (GoCD) β continuous delivery and build automation server
- Jenkins β automation server continuous delivery
- JitPack β package repository for Git projects
- Leiningen β build automation for Clojure
- Simple build tool (sbt) β open-source build tool
- Spring Roo β rapid application development of Java-based enterprise software
- WaveMaker β low-code development platform
Java runtimes, compilers and virtual machines
- Android Runtime β runtime environment
- javac β Java programming language compiler
- Java Virtual Machine (JVM) β virtual machine that executes Java bytecode
- JD Decompiler
- JEB decompiler β disassembler and decompiler software for Android applications
- GraalVM β Just-in-time compilation
- HotSpot β JVM implementation included in OpenJDK
JVM languages and dialects
- Clojure β Lisp dialect
- Groovy
- JRuby β Ruby implementation
- Jython β Python implementation
- Kotlin β popular for Android app development[3]
- Renjin β R implementation
- Scala[4]
Application servers and containers
- Apache Geronimo β open source application server
- Apache MINA β event-driven asynchronous network application framework
- Apache Tomcat β web container and web server
- Apache TomEE β Apache Tomcat with Java EE features
- Borland Enterprise Server β discontinued application server by Borland
- ColdFusion β commercial application server by Adobe Systems
- GlassFish β application server for Jakarta EE
- IBM WebSphere Application Server β enterprise application server by IBM
- IBM WebSphere Application Server Community Edition β open source edition of WebSphere (discontinued)
- JBoss Enterprise Application Platform β Red Hat's supported distribution of JBoss/WildFly
- JEUS β commercial Java EE application server from TmaxSoft
- Jetty β HTTP server and web container
- Lucee (formerly Railo) β open source CFML application server
- Netty β non-blocking I/O clientβserver framework for network applications
- Oracle Containers for J2EE β discontinued application server by Oracle
- Oracle WebLogic Server β enterprise application server by Oracle
- Orion Application Server β early commercial Java EE server by IronFlare
- Payara Server β fork of GlassFish for production use
- Resin β Java application server by Caucho (open source and professional editions)
- SAP NetWeaver Application Server β enterprise application server by SAP
- WildFly β application server[5]
Debugging and profiling tools
- jdb β Java debugger bundled with the JDK[6]
- JConsole β JMX-compliant monitoring tool
- JDK Flight Recorder β method profiling, allocation profiling, and garbage collection related events.
- JProfiler β commercial Java profiler[7]
- VisualVM β visual tool integrating commandline JDK tools for profiling and monitoring
Testing and quality assurance
- Apache JMeter β load testing tool
- JaCoCo β Java code coverage library
- JArchitect β analyzes code quality, architecture, and dependencies.
- Jtest β software testing and static analysis
- JUnit β unit testing framework
- Mockito β open-source testing framework for Java
- PMD β static program analysis source code analyzer
- Selenium β browser automation for web app testing
- Spock β test framework
- SpotBugs (formerly FindBugs) β static analysis tool
- TestNG β testing framework inspired by JUnit and NUnit[8]
Other
- Apache XMLBeans β Java-to-XML binding framework
- DashO β code obfuscator, compactor, optimizer, watermarker.
- Java (software platform) β software platform for developing application software
- Java KeyStore β repository for TLS encryption
- JRipples β change impact analysis
- ProGuard β open-source obfuscator and optimizer
- SableCC β open-source compiler generator
- Semmle β code analysis
- SofCheck Inspector β static analysis tool
See also
- Apache Commons β Apache Software Foundation maintaining of open-source Java software of formerly the Jakarta Project
- Google Guava β open-source set of common libraries for Java, mainly developed by Google engineers.
- Java code coverage tools
- Java Enterprise Edition (Jakarta EE) β extending Java SE for enterprise features such as distributed computing and web services
- Java Management Extensions β managing and monitoring applications, devices (such as printers) and service-oriented networks.
- List of Kotlin software and tools
- OpenJDK β open-source implementation of the Java Platform, Standard Edition (Java SE)
- Outline of the Java programming language
External links
References
- ^ "Maven Repository: Math Libraries". mvnrepository.com.
- ^ "UseJava β CMake 4.1.1 Documentation". cmake.org.
- ^ https://kotlinlang.org/docs/android-overview.html
- ^ "An Overview of the JVM Languages". Baeldung.com. April 14, 2018.
- ^ "Web and Application Servers for Java | Baeldung". www.baeldung.com. November 14, 2017.
- ^ "jdb - The Java Debugger". www.cs.princeton.edu.
- ^ "Java Debugging Tools and Techniques". BrowserStack.
- ^ "Top 5 Java Testing Frameworks every Developer Must Know". BrowserStack.