|
Build & Run
Sun Java Software Development Kit (SDK)
-
Java Platform, Standard Edition (Java SE / J2SE)
By Sun JavaSoft.
Java SE (JSE) was formerly known as Java 2 Platform - J2SE.
Java SE SDK (JDK) & Java 2 Runtime Environment (JRE).
Production Releases, Reference Implementation, Download, Documentation,
Support. Java Security Model, Java Foundation Classes (JFC),
Java IDL API (Interface Definition Language - Applications Programming Interface),
Java Database Connectivity (JDBC).
Java SE Downloads: JSE SDK (JDK),
JDK + NetBeans IDE, Java Runtime (JRE), Documentation, Source, JCE Unlimited.
JDK Documentation:
J2SE Platform, General Info, API & Language, Guide to Features,
JDK Tools Docs
(javac, java, appletviewer, jar etc.), Demos/Tutorials.
-
Java Platform, Enterprise Edition (Java EE / J2EE)
Overview, Developers Corner, Tutorial, In Practice, Blueprints,
Compatibility, Licensees, Tools, Downloads & Specifications,
Documentation, White Papers, Case Studies, Technologies.
Resources: FAQs, J2EE Glossary, Binary Support, Mailing List,
Licensing, Trademark J2EE Technology Center.
Java EE Downloads:
J2EE SDK + Sun Java Application Server bundles, Sun Java Studio Creator,
J2EE 1.4 Tutorial, Java Application Verification Kit (AVK), Specifications.
-
Java Platform, Micro Edition (Java ME / J2ME)
-
Java Card Technology
Compilation and Build
-
Java 2 SDK Tools and Utilities
javac: The compiler for the Java programming language.
java: The launcher for Java applications.
jar: Manage Java Archive (JAR) files.
-
IBM Jikes Project
By IBM developerWorks
- Open Source Software zone.
Jikes is a fast, robust, full-featured compiler that translates Java
source files (.java) into binary format bytecode (.class).
Advantages of Jikes over javac from Sun SDK: Jikes is OSI Certified Open
Source Software; high performance compiler, written in C++; strictly
Java compatible, adhere to the Java Language and VM specifications as
tightly as possible; performs dependency analysis, useful for
incremental builds and makefile generation; provides constructive
assistance helping the programmer write better code, with clear error
messages and pointing out common programming mistakes (as documented in
"Effective Java").
IBM Open Source projects.
- Apache Ant
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles and with the full portability of pure
Java code. Ant is the most widely build tool used for Java projects,
and also supported by most Java IDEs.
Ant is open source free software by Apache Software Foundation.
Ant is extended using Java classes. Instead of writing shell commands,
the configuration files are XML-based, calling out a target tree where
various tasks get executed. Each task is run by an object that
implements a particular Task interface.
- Apache Maven
Maven is a Java project management and project comprehension tool.
Maven is based on the concept of a project object model (POM).
It can manage a project's build, reporting and documentation from a
central piece of information.
Maven is open source free software by Apache Software Foundation.
-
Buildr
Buildr is a build system for Java applications.
It is aimed to be simple and intuitive to use, but also extensible, fast,
reliable and with outstanding dependency management.
A drop-in replacement for Maven 2.0, Buildr uses the same file layout,
artifact specifications, local and remote repositories.
Anything you can do with Ant, you can do with Buildr.
Free software released under the Apache License 2.0, by Intalio Inc.
Project formerly hosted at RubyForge.
-
GNU and the Java language
GNU Java Software.
-
GCJ: The GNU Compiler for the Java
GCJ is a portable, optimizing compiler for the Java Programming Language.
It can compile: Java source code directly to native machine code,
Java source code to Java bytecode (class files),
and Java bytecode to native machine code.
GCJ is part of the GNU Compiler Collection (GCC).
GCC, GDB and related tools are Free Software by GNU.
A collection of java packages built with gcj.
-
Apache Harmony - Open Source Java SE
Apache Harmony is the Java SE project of the Apache Software Foundation,
aimed to produce: a compatible, independent implementation of the Java SE 5
JDK under the Apache License v2; and a community-developed modular runtime
(VM and class library) architecture.
-
GNU Classpath
GNU Classpath, Essential Libraries for Java, is a GNU project to create
free core class libraries for use with virtual machines and compilers
for the java programming language.
GNU Classpath Developer site.
Virual Machine (VM)
-
Oracle BEA JRockit JVM
JRockit is a high performance Java Virtual Machine (JVM) optimized
to run on Intel platforms. With JRockit, you can deploy your
mission-critical applications more rapidly, cost-effectively and reliably.
-
Apple - Java for Mac OS X
-
Kaffe Java VM
Kaffe is a clean room implementation of the Java virtual machine, plus
the associated class libraries needed to provide a Java runtime environment.
The Kaffe virtual machine is free software, licensed under GNU Public License (GPL).
-
Open JVM Integration (OJI) by Netscape/Mozilla.org [Archive]
The Open JVM Integration project (OJI) is working to extend the browser to
allow Java virtual machines to be plugged into Mozilla. OJI will allow the
applet and object tags to show Java applets on a page and support LiveConnect
(the bridge between Java and JavaScript).
Most of the OJI project involves extending the existing Plug-in API to define
what we're calling the Open JVM Plug-in API.
-
A better Java for Firefox 3
By Percy Cabello, 2008-02-27, Mozilla Links:
Java SE 6 Update 10 Early Access.
- IKVM.NET
IKVM.NET is an implementation of Java for Mono and the Microsoft .NET
Framework. It includes the following components: a Java Virtual Machine
implemented in .NET; a .NET implementation of the Java class libraries;
tools that enable Java and .NET interoperability. Free software created
by Jeroen Frijters.
IKVM.NET Weblog.
- SableVM
SableVM is a highly-portable Java virtual machine written in C, and
implementing the Java virtual machine specification, second edition.
Its goals are to be complete, reasonably small, fast, and efficient, as
well as to provide a well-designed and robust platform for further
development and research.
SourceForge: SableVM.
- JamVM
JamVM is a new Java Virtual Machine which conforms to the JVM
specification version 2 (blue book). In comparison to most other VM's
(free and commercial) it is extremely small, with a stripped executable
on PowerPC of only ~110K, and Intel 80K. It is designed to support the
full specification, and includes support for object finalisation, the
Java Native Interface (JNI) and the Reflection API.
SourceForge: JamVM.
-
Google Directory: Java Implementations
Java VMs.
VMs for Mobile Devices - Java ME
-
WebSphere Everyplace Micro Environment
WebSphere Everyplace Micro Environment (WEME) provides the foundation for
deploying business applications to small mobile devices.
Provides a small-footprint embeddable solution for cellular phones, PDAs and
other mobile devices to connect to business applications.
Implements open standards and a Java™ Platform, Micro Edition (Java ME)
runtime (formerly known as J2ME).
Supports CLDC 1.1, MIDP 2.0 for various devices, CDC 1.0 and 1.1.
-
Java® Technology for Palm Handhelds
Java 2 Micro Edition™ (J2ME) on Palm Tungsten handhelds.
Download IBM's WebSphere Micro Environment (WME) to run Java on your handheld.
Palm, maker of Palm handhelds.
Last chance
to download JVM for PalmOS, by Palm Inc., 2008-01-05, the official Palm blog.
Documentation
-
J2SE SDK Javadoc - The Java API Documentation Generator
Javadoc is a tool for generating API documentation in HTML format from
doc comments in Java source code. It is part of the Java J2SE SDK.
Javadoc Documentation:
Javadoc 1.5,
Javadoc 1.4.
Enhancements (What's New), Doclet & Taglet APIs, Doclets.
How to Write Doc Comments for the Javadoc Tool:
This document describes the style guide, tag and image conventions used in
documentation comments for Java programs written at Java Software, Sun
Microsystems. It does not rehash related material covered elsewhere.
For reference material on Javadoc tags, see the
Javadoc Reference Page.
Requirements for Writing Java API Specifications, by
Kevin A. Smith and Doug Kramer, Sun Microsystems, based on the Object
Class Specification by Edward V. Berard.
-
Java2HTML Tool
Java2HTML is a simple-to-use open-source tool which converts a bunch of Java
Source Code into a colourized and browsable HTML representation.
Java2HTML at SourceForge.
- Java2Html
Open source Java source code to (X)HTML (and TeX and RTF) converter,
with syntax highlighting.
-
UMLGraph - Declarative Drawing of UML Diagrams
UMLGraph allows the declarative specification and drawing of UML class and
sequence diagrams. The current features are part of an ongoing effort aiming
to provide support for all types UML diagrams.
In addition, the UMLGraphDoc doclet included in this distribution
automatically adds UML diagrams to javadoc documentation.
Installation
-
Open Source Installers Generators in Java
By Java-Source.net.
-
IzPack Java Software Installer (open source)
IzPack is an installers generator for the Java platform. It produces
lightweight installers that can be run on any operating system where a Java
virtual machine is available.
IzPack is licensed under the terms of the liberal opensource Apache Software
License version 2.0.
-
VAInstall (open source)
VAInstall is a multi-platform installer written in Java.
It is distributed under the GNU GPL License 2.
-
Antigen - Ant Installer GENerator (open source)
Antigen (Ant Installer Generator) is a tool to take an Ant build script,
combine it with a GUI and wrap it up as an executable jar file.
Its primary purpose is to create powerful graphical installers from Ant scripts.
Distributed under Academic Free License (AFL).
Antigen at SourceForge.
-
InstallAnywhere (commercial)
Deployment software by Acresso Software (formerly Macrovision's Software
Business Unit), makers of InstallShield. Originally created by ZeroG.
-
install4j (commercial)
install4j is a powerful multi-platform Java installer builder that generates
native installers and application launchers for Java applications.
install4j excels in its ease of use, its extensive platform support and its
powerful screen and action system.
-
Advanced Installer - Install Java Applications (commercial)
Advanced Installer is a Windows Installer authoring tool with built-in
support for Java applications, integrating them fully into the Windows OS
and making them look and feel just like a native application.
Using Advanced Installer you can create MSI packages for your Java
applications, and allow your application to use the Windows Installer features.
Distribution and Launching
-
Java Web Start Technology
Using Java Web Start technology, standalone Java software desktop
applications can be deployed with a single click over the network.
Java Web Start ensures the most current version of the application will be
deployed, as well as the correct version of the Java Runtime Environment (JRE).
-
JLaunchPad
JLaunchPad (Java launcher) is the set of Java classes and shell scripts
(Windows and Unix) for simplifying installation/launching of Java
applications. Once the launcher is installed, it can be reused for starting
different Java applications.
Announcement: JLaunchPad - next generation of java launcher, 2007-08-27.
Distribution as Executable
- JSmooth
JSmooth is a Java Executable Wrapper that makes a standard Windows
executable binary (.exe) from a jar file. It makes java deployment much
smoother and user-friendly, as it is able to find a Java VM by itself.
When no VM is available, it provides feed-back to the users, and can
launch the default web browser to an URL that explains how to download a
Java VM. Jsmooth is free software released under the terms of the GNU
General Public License (GPL).
- Launch4J
Windows native executable java application wrapper.
Free software distributed under LGPL.
Other JVM Environments and Languages
- JRuby
JRuby is an 100% pure-Java implementation of the Ruby programming language.
Features a fully compatible Ruby interpreter written in Java, most built-in
Ruby classes provided, support for interacting with and defining java classes
from within ruby, Bean Scripting Framework (BSF).
Distributed under a tri-license (CPL/GPL/LGPL).
Formerly at jruby.codehaus.org.
See: Dynamic Languages: Ruby.
- Jython
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated
with the Java platform. It thus allows you to run Python on any Java
platform. Jython started as JPython, created in late 1997 by Jim Hugunin.
Jython is freely available for both commercial and non-commercial use
and is distributed with source code.
See: Dynamic Languages: Python.
- Clojure
Clojure is predominantly a functional programming language,and features a
rich set of immutable, persistent data structures.
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data
philosophy and a powerful macro system.
Clojure compiles directly to JVM bytecode.
According article
Clojure: Challenge your Java assumptions, by Joshua Fox, 2009-05-12, at JavaWorld.com:
Clojure is a dynamic functional language for the JVM,
released in
version 1.0 on May 2009. Clojure offers a new set of programming
techniques for robust code and rapid development.
In particular, it has new solutions for multicore computing.
Whether you make the shift to Clojure or stick to Java, learning about this
new language will challenge your assumptions about the best way to design
software.
The clojure programming language project is open source under
Eclipse Public License (EPL) 1.0. It is hosted on Google Code and its
latest development is on
GitHub and
Assembla.
See also the Clojure blog with
news about the Clojure programming language.
Groovy
-
Groovy
Groovy is a new agile dynamic language for the JVM combining lots of
great features from languages like Python, Ruby and Smalltalk and making
them available to the Java developers using a Java-like syntax.
Groovy is an open source project and the language was accepted as a JSR.
-
JSR 241: The Groovy Programming Language
Java Community Process (JCP).
-
Introduction to Groovy
Part 2,
Part 3.
By Andres Almiray, Sep-Dec 2007, Javalobby.
-
Groovy - Scripting for Java
By Mark Volkmann, Object Computing, Inc. (OCI) partner, February 2004.
-
Getting to Know Groovy
By John Zukowski, 2005-05-17, Sun Developer Network (SDN).
- Grails
Grails aims to bring the "coding by convention" paradigm (popularized by Ruby
on Rails) to Groovy. Grails is an open-source web application framework that
leverages the Groovy language and complements Java Web development.
Formerly grails.codehaus.org .
-
Getting Started with Grails
By Jason Rudolph, 2007-01-17, InfoQ minibook,
free PDF download (requires free registration).
Scala
-
Scala Programming Language
Scala is a general purpose programming language designed to express common
programming patterns in a concise, elegant, and type-safe way.
It smoothly integrates features of object-oriented and functional languages,
enabling Java and other programmers to be more productive.
Scala programs run on the Java VM, are byte code compatible and fully
interoperable with Java. But code sizes in Scala are typically
reduced by a factor of two to three when compared to an equivalent Java
application.
Scala is the successor of Funnel, a language based on join calculus.
Scala is open source software.
About Scala Programming Language.
- Scala Blog
News and information on Scala and its features and tools.
-
Lift - The Simply Functional Web Framework
Lift is an expressive and elegant framework for writing web applications.
Lift applications are written in Scala.
Lift stresses the importance of security, maintainability, scalability and
performance, while allowing for high levels of developer productivity.
Lift open source software licensed under an Apache 2.0 license.
-
Series - The busy Java developer's guide to Scala
By Ted Neward, Principal, Neward and Associates, at IBM developerWorks.
Level: Introductory.
Scala tutorial on IBM developerWorks, by Joel Neely, 2008-03-19,
Functional Programming - Scala.
- Scalazine
A magazine for the Scala programming community. Editor: Bill Venners.
-
Scala Actors: A Short Tutorial
By Philipp Haller, 2007-05-24.
-
Roundup: Scala for Java Refugees
Article series by Daniel Spiewak, Code Commit, January-February 2008.
Part 1: main(String[]),
Part 2: Basic OOP,
Part 3: Methods and Statics,
Part 4: Pattern Matching and Exceptions,
Part 5: Traits and Types,
Part 6: Getting Over Java.
See other Scala articles from him.
Screencast: Introduction to the Scala Developer Tools (Eclipse), 2008-04-21.
-
Java to Scala - some links
By Ron Francis, 2008-05-08.
Interactive command environments
- BeanShell
BeanShell is a small, free, embeddable, Java source interpreter with object
scripting language features, written in Pure Java. BeanShell can run in
four modes: command line, interactive console (text/graphical), applet,
remote session server.
BeanShell executes standard Java statements and expressions (using Java
reflection API), in addition to its own scripting commands and syntax.
BeanShell supports scripted objects as simple method closures like those
in Perl and JavaScript.
You can use BeanShell interactively for Java experimentation and debugging
or as a simple scripting engine for your applications.
- JBash
Bourne Again Shell (Bash) parser in Java, consisting in a Bash grammar for
JavaCC. Open source project at Google Code under GNU GPL v3 licence.
|