| |
Java APIs, Libraries & Toolkits
-
Java API Documentation
- Java Platform, Standard Edition (Java SE / J2SE) API
- J2SE Optional Packages:
Java Advanced Imaging (JAI) API,
Java Communications API,
Java Cryptography Extension (JCE) 1.2 API (has been integrated into the J2SE 1.4),
Java Data Objects (JDO) API,
Java Naming and Directory Interface (JNDI),
Java Secure Socket Extension (JSSE) 1.0 API (has been integrated into the J2SE 1.4)
-
Java Media Framework API (JMF),
Java Speech,
Java 3D API,
2D Image I/O (JSE), Shared Data Toolkit, Sound (JSE)
- Java Platform, Enterprise Edition (Java EE / J2EE) API
- Java Platform, Micro Edition (Java ME / J2ME) API
- Java Telephony API (JTAPI)
- Java Card, XML Technologies, other.
- Javadoc Tool: Doclet API, Taglet API
-
Java Platform Migration Guide - Version 1.3 to 5.0 (PDF)
White Paper by Sun Microsystems, for J2SE.
-
Apache Commons
The Commons Proper
- A repository of reusable Java components.
Originated from Jakarta project, Apache Commons is a big complement to
the Java SE API, essential for common tasks not covered by the standard Java
API. Before start implementing some basic programming feature which you
did not find in Java API, look if it already exists in Apache Commons, avoid
“reinventing the wheel”.
Attributes, BeanUtils, Betwixt, Chain, CLI, Codec, Collections,
Configuration, Daemon, DBCP, DbUtils, Digester, Discovery, EL,
Email, FileUpload, HttpClient, IO, Jelly, Jexl, JXPath, Lang,
Latka, Launcher, Logging, Math, Modeler, Net, Pool, Primitives,
Resources, Transaction, Validator, VFS.
Using the Jakarta Commons, Part 1, article by Vikram Goyal, ONJava,
Jun/2003.
Part 2,
Part 3 (Jul/2003).
See also: Java Projects: Apache.
Log
-
Apache Commons Logging
Formerly Jakarta Commons Logging (JCL).
Commons Logging provides a Log interface and LogFactory that is intended to
be both light-weight implementation and an independent abstraction of other
logging toolkits, such as JDK logging API (JSR-47) and Log4J.
De facto standard for logging API.
Commons logging
User Guide,
Technology Guide.
Its use is as simple as
these two steps: create a class log attribute and log messages.
-
Log4j Logging Services
A reliable, fast and extensible logging library for Java.
By Apache Software Foundation.
-
Java Logging APIs
The Java Logging APIs introduced in
J2SE 1.4, in package java.util.logging.
-
Lumberjack - The Java Logging API for JDKs prior to 1.4
The Lumberjack project provides an open source (covered by the GNU
Lesser Public License) implementation of the logging APIs first
introduced in JDK 1.4 that will work for JDK 1.2 and 1.3.
-
Acelet - Super Logging: Audit Log & Limpid Log
Super Log combines
Limpid Log and
Audit Log under one roof as
logging system for Java SE and EE, to recording events and messages.
It is written entirely in Java and dynamically re-configurable at runtime.
Audit Log and Limpid Log are free, open source software, under GNU GPL v2.
AuditLog (log for auditing) released as a plugin of LimpidLog,
Wei Jiang, 2008-04-22, TheServerSide.COM.
-
Effective logging practices ease enterprise development
By Charles Chan, Ambrose Software, 09 Aug 2005, IBM developerWorks.
-
Google Directory: Java Class Libraries: Logging
Concurrent Programming
-
Lesson - Concurrency: Doing Two or More Tasks At Once
In Java Tutorial
on-line, Trail: Essential Java Classes.
-
Java Parallel Processing Framework
JPPF is an open source Grid Computing platform written in Java that makes it
easy to run applications in parallel, and speed up their execution by orders
of magnitude. See also
Java Parallel Processing Framework 1.4, by Laurent Cohen, 2008-08-23, for
Javalobby DZone.
-
Writing multithreaded Java applications
Learn to avoid problems common in concurrent programming.
By Alex Roetter, software engineer, 01 Feb 2001.
IBM developerWorks on Java technology.
Java theory and practice: Thread pools and work queues, by Brian Goetz.
IBM Multithreaded Java programming forum.
-
Java Threads articles by Brian Goetz
At programming-x.com.
-
Thread: State Diagram [In Portuguese]
Image depigting the diagram of possible states and transitions between
them, for Java threads. By Márcio d'Ávila. The diagram presents only the
normal flow of transitions, don't including interrupt situations,
which drive to the InterruptedException exception.
-
Java Thread Primitive Deprecation
Why are Thread.stop, Thread.suspend, Thread.resume and
Runtime.runFinalizersOnExit deprecated? Explanation in
Java 2 Platform
Standard Edition (J2SE) 5.0 Guide.
- Book:
Java Threads (358 pp.)
Authors: Scott Oaks, Henry Wong. Publisher:
O'Reilly Media,
3rd Edition, September 2004. ISBN: 0-596-00782-5.
- Book:
Java Thread Programming (528 pp.)
Author: Paul Hyde. Publisher: Sams, August 1999. ISBN: 0672315858.
-
J2SE 5.0 Concurrency Utilities
Packages
java.util.concurrent, java.util.concurrent.atomic, java.util.concurrent.locks.
Concurrency Utilities Overview.
Refer to JSR 166.
-
Concurrent Programming Package
Package util.concurrent, by Doug
Lea, author of book Concurrent
Programming in Java. Superseded by
JSR-166,
which have been released as part of J2SE 5.0 ("Tiger"), mostly in new
package java.util.concurrent.
- Book:
Concurrent Programming in Java: Design Principles and Patterns (411 pp.)
Author: Doug Lea. Publisher: Addison-Wesley,
2nd Edition, October 1999.
ISBN: 0-201-31009-0.
Sun Java Series.
-
Concurrent Programming Using Java
By Stephen J. Hartley.
-
Java Concurrency and Threads
References at Software Technologies, SwTech.com.
Real-Time Programming
-
JSR 282: Real-time Specification for Java (RTSJ) version 1.1
Evolution of JSR 1: Real-time
Specification for Java (1.0).
-
RTSJ.org - Real-Time for Java Expert Group
RTSJ java.net project.
The Real-Time Specification
for Java (PDF), by Greg Bollella et al., Addison-Wesley, 2000.
-
Java Se Real-Time
The Sun Java Real-Time System 2.0 (Java RTS) is a substantially enhanced
release of Sun's first conformant commercial implementation of the Real-Time
Specification for Java (JSR-001). Implementations of the RTSJ make standard
Java technology more deterministic and enable it to meet rigorous timing
requirements for mission-critical real-time applications.
Java RTS 2.0 is available for evaluation licensing.
-
Javolution
Javolution: biblioteca para desenvolvimento de sistemas tempo-real (realtime)
e embarcados (embedded).
Javolution provê um conjunto de classes de alto desempenho e com comportamento
altamente tempo-determinístico, para conformidade com ambiente tempo-real,
coleções e estruturas fundamentais, manipulação de texto, E/S e XML.
Traz também as classes Struct e Union para maior correspondência com
aplicações C/C++. Introduz Contextos específicos (para logging, performance,
concorrência, persistência, segurança etc.) para separação de aspectos de
programação.
Há distribuições da biblioteca Javolution para as plataformas Java ME CLDC
1.0+ e CLDC 1.1+, Java SE 1.4, 5 e 6, e gcj (GNU Compiler for Java).
Javolution é software de código aberto distribuído sob licença BSD.
-
JRealTime
Native Java(tm) Modules for realtime systems.
-
aicas - Realtime Java Technology
Realtime Java Virtual Machine - JamaicaVM, object oriented software
development environment, and analysis tools for safety critical systems.
Time & Date
-
JSR 310: Date and Time API
This in-progress JSR will provide a new and improved date and time API for Java.
Submited by Stephen Colebourne, creator of Joda-Time library.
The main goal of JST-310 is to build upon the lessons learned from the first
two APIs in Java SE (Date and Calendar) and on experience gained from the
Joda-Time project, to provide a more advanced and comprehensive model for
date and time manipulation.
The new API will be targeted at all applications needing a data model for
dates and times. This model will go beyond classes to replace Date and Calendar,
to include representations of date without time, time without date, periods,
durations, and intervals.
Announcing JSR 310 - Date and Time API, Stephen Colebourne's Weblog, 30/jan/2007.
-
Joda Time
By Stephen Colebourne. Joda-Time is an open-source project to provide a quality
Java date and time API. Current interfaces and implementations include:
DateTime (immutable replacement for JDK Calendar) and DateMidnight;
LocalDate, LocalTime and LocalDateTime (no time zone);
Chronology and DateTimeZone (ISO
8601 and other chronologies, calendar systems and time zones);
Interval, Period and Duration (intervals and time periods);
plus formatting and parsing.
SourceForge Project:
joda-time.
-
TimeAndMoney Java Code Library
This is a project to develop code for manipulating basic concepts in recurring
domains such as time and money. Use this open source Java code library to make
key low-level domain logic more expressive, more maintainable, and less error-prone.
Time & Money Code Library
@ SourceForge.
-
CalendarDate
Simple, small and effective java date implementation.
-
ISO 8601
ISO 8601 - international standard for representation of dates and times.
From Wikipedia, the free encyclopedia.
ISO 8601:2004(E) from ISO (ZIP-PDF, 228KB), Third edition 2004-12-01.
ISO8601 Yahoo Groups
(files).
A summary of the
international standard date and time notation, by Markus Kuhn.
ISO 8601 - Links,
by Hans-Jochen Vogel.
dmoz Open Directory: ISO 8601.
International Date
Format Campaign (IDFC).
Internationalization
Scanners, Parsers, Syntatical and Lexical Analyzers
Java tools to creating from interpreters for
expressions, macros and
domain-specific languages (DSL), up to full compilers.
- ANTLR
ANTLR, ANother Tool for Language Recognition, is a language tool that provides
a framework for constructing recognizers, interpreters, compilers, and
translators from grammatical descriptions containing actions in a variety of
target languages. ANTLR provides excellent support for tree construction,
tree walking, translation, error recovery, and error reporting.
Getting started with ANTLR v3.
ANTLR v3 Documentation, ANTLR API
(Java, C, Python C#, Objective-C),
ANTLR FAQ
and Articles.
ANTLRWorks: The ANTLR GUI Development Environment.
ANTLR Parser Generator
pages by Ian Kaplan.
- JavaCC
JavaCC is a parser/scanner generator for java.
JavaCC: Documentation
Index - the
JavaCC grammar file (.jj) syntax.
The JavaCC FAQ,
maintained by Theo Norvell at Memorial University of Newfoundland.
-
JFlex - The Fast Scanner Generator for Java
JFlex is a lexical analyzer generator (also known as scanner generator) for Java,
written in Java. It is also a rewrite of the very useful tool JLex developed
by Elliot Berk at Princeton University.
JFlex is designed to work together with the LALR parser generator CUP by
Scott Hudson, and the Java modification of Berkeley Yacc BYacc/J by Bob Jamison.
It can also be used together with other parser generators like ANTLR
or as a standalone tool.
-
JLex
JLex is a lexical analyzer generator, written for Java, in Java.
JLex was developed by Elliot Berk at Princeton University.
It is now maintained by C. Scott Ananian.
See also FLEX
Compiler Infrastructure, Program Analysis and Compilation Group at MIT.
-
CUP
LALR Parser Generator in Java. By Scott Hudson, Frank Flannery, C. Scott Ananian.
CUP is now maintained and improved at the Technical University of Munich.
- BYACC/J
BYACC/J is a Java extension of the Berkeley v 1.8 YACC-compatible parser generator.
-
JEP - Java Math Expression Parser
JEP is a Java library for parsing and evaluating mathematical expressions.
With this package you can allow your users to enter an arbitrary formula as a
string, and instantly evaluate it.
JEP supports user defined variables, constants, and functions.
A number of common mathematical functions and constants are included.
By Singular Systems.
-
Java Expressions Library (JEL)
JEL is the library for evaluating a simple single line expressions in Java.
- See also:
Tools: Scanners, Parsers, Syntatical and Lexical Analyzers
Scientific Programming
- JScience
Java tools and libraries for the advancement of sciences.
Project vision: To provide the most comprehensive Java library for the
scientific community. To create synergy between all sciences (e.g. math,
physics, sociology, biology, astronomy, economics, etc.) by integrating them
into a single architecture. To provide the best on-line services (webstart)
for scientific calculations and visualizations.
-
LinAlg API
The LinAlg API provides classes and methods for linear Algebra i.g. for
Vectors (2D and 3D), Matrices, Complex Numbers. Released under GPL v2
and CDDL licences.
By Alexander Schunk
(blog).
-
Uncommons Maths
Random number generators and other mathematical utilities.
By uncommons.org Project.
A Java Programmer's Guide to Random Numbers -
Part 1: Beyond java.util.Random;
Part 2: Not just coins and dice, by Daniel Dyer, May 2008.
- Colt
Colt Project provides a set of Open Source Libraries for High Performance
Scientific and Technical Computing in Java.
-
JAMA: A Java Matrix Package
JAMA is a basic linear algebra package for Java. This software is a
cooperative product of The MathWorks and the National Institute of Standards
and Technology (NIST) which has been released to the public domain.
-
Java for Scientific Computing
Java ME - Mobile & Wireless
-
Java Platform, Micro Edition (Java ME)
Formerly: Java 2 Platform, Micro Edition (J2ME).
-
Crisp Wireless
Formerly Micro Java Network.
-
SCMAD Certification Center
Helping You Pass the Sun Certified Mobile Application Developer (SCMAD)
Certification. SCMAD Overview, SCMAD Objectives, Mock Exams,
Study Guides, Study Notes, SCMAD Community, SCMAD Experiences,
J2ME Documentation, J2ME Tutorials, FREE J2ME Books, J2ME Glossary,
J2ME FAQs, J2ME Examples, J2ME Tools, J2ME Resources, J2ME News.
-
Bill Day's J2ME Archive
-
J2me Forums
Discussion board for Java™ Micro Edition (Java ME) technology.
Former J2me.org.
-
jGuru J2ME FAQ
-
J2ME Software Repository
-
360Mobile.us
Mobile device technology and development.
Former CoreJ2ME.com.
-
MIDlog
MIDlog, a J2ME client for weblog systems.
Remote blogging with Blogger.com, Movable Type and others.
Other
|