List of Java software and tools
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
- JDBCFacade – simplifies JDBC use
- 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
- StableUpdate – update management
- 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
- Yooreeka – machine learning[1]
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.[2]
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[3]
- 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[4]
- Renjin – R implementation
- Scala[5]
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[6]
Debugging and profiling tools
- jdb – Java debugger bundled with the JDK[7]
- JConsole – JMX-compliant monitoring tool
- JDK Flight Recorder – method profiling, allocation profiling, and garbage collection related events.
- JProfiler – commercial Java profiler[8]
- 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[9]
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
- ^ "Java Tools for Deep Learning, Machine Learning and AI". Pathmind.
- ^ "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.