Construção & Execução

Kit de Desenvolvimento de Software (SDK) Java da Sun

  • Java Platform, Standard Edition (Java SE / J2SE)
    By Sun JavaSoft. Java SE (JSE) era anteriormente conhecido como Java 2 Platform - J2SE. Java SE SDK (JDK) & Java 2 Runtime Environment (JRE).
    Versões de Produção, Implementação de Referência, Download, Documentação, Suporte. 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), Documentação, Fonte, JCE Ilimitado.
    Documentação JDK: Plataforma J2SE, Info Geral, API & Linguagem, Guia de Recursos, JDK Tools Docs (javac, java, appletviewer, jar etc.), Demos/Tutoriais.
  • 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

Compilação e Construção

  • 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
    Por IBM developerWorks - Open Source Software zone.
    Jikes é um compilador rápido, robusto e poderoso que traduz arquivos fonte Java (.java) para bytecode em formato binário (.class).
    Vantagens do Jikes sobre o javac do Sun SDK: Jikes é Software Aberto Certificado OSI; compilador de alto desempenho, escrito em C++; estritamente compatível Java, aderindo às especificações da Linguagem e da VM Java tão exatamente quanto possível; realiza análise de dependência, útil para build incrementais e geração de makefile; provê assistência construtiva ajudando o programador a escrever código melhor, com mensagens de erro claras e apontando erros comuns de programação (como documento em "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 é um sistema de construção para aplicações Java. Ele objetiva ser simples e intuitivo de usar, mas também extensível, rápido, confiável e com um excelente gerenciamento de dependências. A drop-in replacement for Maven 2.0, Buildr uses the same file layout, artifact specifications, local and remote repositories. Tudo que você pode fazer com Ant, pode também fazer com Buildr. Software livre distribuído sob a Licença Apache 2.0, por Intalio Inc.
    Projeto anteriormente hospedado em 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.

Máquina Virtual Java (JVM)

  • 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
    Por 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.

MVs para Dispositivos Móveis - 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) em handhelds Palm Tungsten. Download IBM's WebSphere Micro Environment (WME) para executar Java em seu computador de mão. Palm, fabricante dos computadores de mão Palm.
    Last chance to download JVM for PalmOS, by Palm Inc., 2008-01-05, the official Palm blog. Ultima chance de "baixar" o Java Virtual Machine na Palm, por Andres Segal, 2008-01-10, Palm-BR.

Documentação

  • 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: Este documento descreve o guia de estilo e conveções de marcação (tag) e imagem usados em comentários de documentação dos programas Java escritos na Java Software, Sun Microsystems. Ele não replica material relacionado descrito em outros locais.
    Para material de referência sobre as tags Javadoc, veja a Página de Referência do Javadoc.
    Requirements for Writing Java API Specifications, por Kevin A. Smith e Doug Kramer, Sun Microsystems, baseado na Object Class Specification por 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.

Instalação

  • Open Source Installers Generators in Java
    By Java-Source.net.
  • IzPack Java Software Installer (livre)
    IzPack é um gerador de instalações para a plataforma Java. Ele produz instaladores leves que podem rodar em qualquer sistema operacional onde há uma máquina virtual Java disponível. IzPack é licenciado sob os termos da Licença liberal opensource Apache Software License versão 2.0.
  • VAInstall (livre)
    VAInstall is a multi-platform installer written in Java. It is distributed under the GNU GPL License 2.
  • Antigen - Ant Installer GENerator (livre)
    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 (comercial)
    Software de deployment por Acresso Software (antes Macrovision Software Business Unit), produtores do InstallShield. Originalmente criado por ZeroG.
  • install4j (comercial)
    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 (comercial)
    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.

Distribuição e Disparo

  • Java Web Start Technology
    O software Java Web Start permite fazer download de aplicativos Java da Web e executá-los. Usando a tecnologia Java Web Start, aplicações desktop de software Java standalone podem ser distribuídas em um único clique pela rede. Java Web Start assegura que a versão mais atual da aplicação será utilizada, bem como a versão correta de Java Runtime Environment (JRE).
    O que é o software Java Web Start e como ele é iniciado?
  • 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.

Distribuição como Executável

  • 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.

Outros Ambientes e Linguagens JVM

  • JRuby
    JRuby é uma implementação 100% puro-Java da linguagem de programação Ruby. 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). Distribuído sob triplas licenças (CPL/GPL/LGPL). Anteriormente em jruby.codehaus.org.
    Veja: Linguagens Dinâmicas: Ruby.
  • Jython
    Jython é uma implementação da linguagem de alto-nível, dinâmica e orientada a objetos Python, escrita em 100% Puro Java, e totalmente integrada com a plataforma Java. Jython portanto permite que você execute Python em qualquer plataforma Java. Jython começou como JPython, criada em 1997 por Jim Hugunin. Jython é livremente disponível tanto para uso comercial quanto não-comercial e é distribuído com código fonte.
    Veja: Linguagens Dinâmicas: Python.
  • Clojure
    Clojure é uma linguagem de programação predominantemente funcional, e provê uma rico conjunto de estruturas de dados imutáveis e persistentes. Clojure é um dialeto da linguagem de programação Lisp, e compartilha com Lisp a filosofia de código-como-dado e um poderoso sistema de macro. Clojure compila diretamente para bytecode da JVM.
    Segundo o artigo Clojure: Challenge your Java assumptions, por Joshua Fox, 2009-05-12, em JavaWorld.com: Clojure é uma linguagem funcional dinâmica para a Máquina Virtual Java (JVM), lançada em versão 1.0 em maio de 2009. Clojure oferece um novo conjunto de técnicas de programação visando código robusto e desenvolvimento rápido. Em particular, ela oferece novas soluções para computação multicore. Não importando se você adere a Clojure ou permanece com Java, aprender sobre esta nova linguagem pode desafiar suas assunções sobre a melhor forma de projetar software.
    O projeto da linguagem de programação Clojure é software livre sob licença Eclipse Public License (EPL) 1.0. Está hospedado em Google Code e seu desenvolvimento mais recente é mantido em GitHub e Assembla.
    Veja também o blog Clojure com novidades sobre esta linguagem de programação.

Groovy

  • Groovy
    Groovy é uma nova linguagem ágil e dinâmica para a JVM combinando muitos dos grandes recursos de linguagens como Python, Ruby e Smalltalk e tornando-os acessíveis para desenvolvedores Java através de uma sintaxe similar a Java.
    Groovy é um projeto open source e a linguagem foi aceita como uma JSR.
  • JSR 241: The Groovy Programming Language
    Java Community Process (JCP).
  • Introduction to Groovy
    Parte 2, Parte 3. Por Andres Almiray, set-dez 2007, Javalobby.
  • Groovy - Scripting for Java
    Por Mark Volkmann, parceiro da Object Computing, Inc. (OCI), fevereiro 2004.
  • Getting to Know Groovy
    Por John Zukowski, 2005-05-17, Sun Developer Network (SDN).
  • Grails
    Grails objetiva trazer o paradigma "codificação por convenção" (popularizado por Ruby on Rails) para Groovy. Grails é um framework open-source para aplicações web que impulsiona a linguagem Groovy e complementa o desenvolvimento web Java. Anteriormente grails.codehaus.org.
    • Grails Brasil [Em Português]
      Grupo de usuários Grails no Brasil.
  • Getting Started with Grails
    Por Jason Rudolph, 2007-01-17, InfoQ mini-livro, PDF gratuito para baixar (requer registro gratuito).

Scala

Ambientes interativos de comandos

  • BeanShell
    BeanShell é um interpretador de fonte Java pequeno, gratuito e acoplável, com recursos de linguagem de script orientada a objetos, escrito em Java Puro. BeanShell pode ser executado em quatro modos: linha de comando, console interativa (texto/gráfica), applet, servidor de sessão remota.
    BeanShell executa comandos e expressões Java padrão (usando API de reflexão Java), além de seus próprios comandos e sintaxe de scripting. BeanShell suporta objetos de script como métodos simples similares aos de Perl e JavaScript. Você pode usar BeanShell interativamente para experimentação e depuração Java ou como um mecanismo de script simples para suas aplicações.
  • JBash
    Parser da Bourne Again Shell (Bash) em Java, consistindo em uma gramática para JavaCC. Projeto de código aberto em Google Code sob licença GNU GPL v3.