Java is a resonably nice language to work in if you don't need to have
full control of the machine. There's also a vibrant tools community
doing useful tools, and a vibrant open-source community producing
innovative libraries and tools.
Performance needs work. A lot of work. The object libraries need as
much work as the VM. The performance of Strings is horrible.
Sites
- Sun Java Home
- The root of Java.
- IBM Java Hub
- IBM is doing a lot to make Java real. Check out the IBM
JDK and Eclipse
- The Java Community Process (JCP))
- The JCP is the sun almost standards body that is working on
developing and revisiting Java. It's not as good as a real standards
body, but that's all there is.
- O'Reilly's OnJava
- Good articles.
- JavaWorld
- Good articles.
- Java Report
- Occasionally good articles.
Tools
Base Tools
Don't bother if you don't have these
- Java 2
- The base development kit
Java with Parameterized Types
- JSR-14
- Finally, generics will be added to Java. It won't be until JDK
1.5, but better late than never.
IDE
- Eclipse
- Eclipse has support hot swap debugging, ant
- There are plugins for xml, style checking, pretty-print
reformatting, db browsing, ejb, jsp, servlets, struts, aspectj,
bytecode disassembly, etc.
See my Eclipse Startup Page for more details
Compilers
- gcj
- Compile Java with GCC.
- Jikes
- An open-source compiler for Java written in C. FAST.
.class file tools
- CafeBabe
class file editor/viewer
- Edit class files
Other Development Aids
- Ant
- A flexible build tool for Java projects based on an XML
configuration file - a defacto standard
- XDoclet
- XDoclet is a code generation system that generates code based on
special javadoc tags. This enables functionality similar to .Net
attributes
- pretty printer / reformatter
- You shouldn't need one of these, but often you do.
- DocWiz
JavaDoc "Editor"
- A nicer way to edit javadoc comments
- OO Modeling Tool
- I wish for an open source round trip UML tool.
- p6spy
- Pooling and debugging tools for JDBC
- Forrest
- New documentation tool for websites
- Maven
- A comprehensive build system for open source projects
Parser Generators
- JavaCC
- A pretty good parser generator, but dead ended by Metamata.
- ANTLR
- The original open source Java parser generator.
Testing / Metrics
- JUnit
- Unit Test Framework
- httpunit
- A Unit Test framework for HTTP/web applications
- code coverage
Useful code
Repositories
- Gamelan
- The original Java source code repository.
- The Giant Java Tree - source code
- A decent amount of source code
Specific Code
- commons-collections
- A set of collection classes conforming to the JDK 1.2 collections
API
- commons-logging
- A generic API for logging that encapsulates Log4J and JDK 1.4
logging
- log4j
- A flexible system for doing logging in an application -- include
level filtering and a number of appenders (destinations for log
messages)
- hsqldb
- An all Java relational database, for those jobs where you don't
need Oracle, MySQL or some heavyweight database
- jakarta-oro
- A regular expression library modelled after Perl
- jakarta-commons-sandbox-net
- The Savarese NetComponents library which includes FTP, NNTP,
SMTP, Finger, etc
- commons-dbcp
- A database connection pool library
- lucene
- A full text search engine
- xalan
- XSLT processor
- xerces
- XML Parser
- axis
- SOAP 1.1 engine
- struts
- "MVC" framework for JSP
- jstl
- JSP Standard tag library
- Cryptix
- Crypto Libraries, including twofish, blowfish
- JESS
- CLIPS in Java
- JavaLog
- Prolog in Java
- Doug Lea's concurrent
- Concurrency Abstractions by the master
- Kiwi
- Library of Swing UI components
App servers
- JBoss
- Open Source J2EE server
- Servlets.com
- Jason Hunter's Servlets book site
- Tomcat
- Open Source Servlet/JSP container
- Jetty
- Open Source Servlet/JSP container