Ostermillerutil Java Utilities Java Utilities - OstermillerUtils

Open source (GPL) Java utilities maintained by Stephen Ostermiller with help from many contributors. The utilities can be obtained in .jar format from the download page.


  • ArrayHelper - Helpful utilities for working with arrays.
  • Base64 - Encode and decode base 64.
  • Browser - Open a browser from an application on Windows, Unix, or Macintosh.
  • CGI Query String Parser - Libraries to to parse the query data supplied by HTTP GET or POST requests.
  • Circular Buffers - Implements the circular buffer producer/consumer model for bytes.
  • Command Line Parser - Handle options and arguments to Java command line programs.
  • Concatenation Streams - Combine multiple streams of incoming data to create a single stream.
  • Comma Separated Values (CSV) - Libraries to read and write files in Comma Separated Value (CSV) format. (Excel CSV Format also available)
  • Exec Helper - Convenience methods for executing external applications that output data.
  • File Helper - Methods for manipulating files.
  • Iterators and Enumerations - Convert between Iterators and Enumerations or convert arrays to Iterators or Enumerations.
  • Line Ends - Converts text files between various system formats.
  • MD5 Sums - Classes for generating MD5 checksums on String, Byte arrays, Streams, or Files.
  • NoClose Streams - Create streams that cannot be closed with the regular close() mechanism.
  • Parallelizer - Runs multiple jobs in parallel, n threads at a time, and waits until all threads are complete before continuing.
  • Password Dialog - A password dialog box written for Swing.
  • Random Password Generator - Generate a random String using a cryptographically secure random number generator.
  • Significant Figures - Handles parsing, rounding, and displaying numbers for scientific applications.
  • Size Limit Input Stream - Create a sub-stream of a specified length from an existing input stream.
  • String Helper - Methods for formatting, manipulating, and querying Strings.
  • String Tokenizer - A StringTokenizer replacement with enhancements.
  • Straight Stream Reader - An input stream reader that does no character class translation.
  • Tabs - Tab adjuster that can convert tabs to spaces and vice versa.
  • Uber Properties - A replacement for the java.utils.Properties class with enhancements.


Several tools are useful if you want to modify and recompile these utilities:
  • Java SDK - Includes the Java compiler.
  • Apache Ant - for building distribution files.
  • JFlex - to generate lexers used by several utilities.
  • Better Template Engine - To compile the website documentation.
  • com.Ostermiller.Syntax package - To color the HTML source code.
  • Make - (optional in addition to ant) to automate the build. Consider "make", "make install", "make clean", "make build", and "make javadoc".
  • Cygwin - to get Unix utilities (including make and CVS) for Windows.


OstermillerUtil Java Utilities Copyright (c) 2001-2020 by Stephen Ostermiller and other contributors

The OstermillerUtils library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

License FAQs - Why GPL? How about the LGPL or something else?