Apart from your favourite IDE, I feel, a Java Developer might be very productive with the following tools (in no particular order):
- Firefox (Do I need to say anything about it?)
- Apache Ant (Not needed, if you use NetBeans. NetBeans has got bundled ant)
- JEdit (Mainly for it’s wide range of plugins. I use it’s LogViewer and HexViewer plugin frequently. Also it has got excellent syntax highlighting for your properties file, java files, nsis scripts etc)
- Subversion Version Control System(Got excellent integration with NetBeans and Eclipse. You must consider it atleast for your personal development.) You can read more about installing subversion here.
- Apache Tomcat (The ubiquitous servlet container.)
- Glassfish (The best open source application server, at the moment. Thanks RedHat for making JBoss AS development sluggish. JBoss AS users are waiting for nearly 1 1/2 years for the 5.0 release.)
- Java Service Wrapper (An excellent product to launch your java applications as a windows service)
- JASYPT (Excellent cryptography library to encrypt/decrypt your passwords, files etc.)
- Apache Commons Library (Contains almost all the utility classes you will ever need. Kindly check this project before writing your own utility classes)
- JUDE Community (An excellent free UML modelling tool. You must definitely give it a try. It’s lightweight and it’s very simple to use.)
- MySQL (The most popular open source database at the moment)
Did anybody say that I forgot to add Google as well :-)
What else do you use? It will be of great use to the community if you can share about your experience as well.
Note: I tend not to include frameworks like Spring, JSF, Wicket etc.. Because you can see these frameworks too are highly subjective and a major reason for lots of flamewars. And that’s the reason why I didn’t mention any IDE as well. Whatever IDE or framework you use, it’s very likely that you might need the above mentioned “tools” except a few like database/application server, whose choice are mostly defined by a particular organization.
You should read this article in the perspective of “tools needed for your personal java development”. Because there are “lots” of factors involved in your work environment regarding the selection of tools.
And lastly, this is my humble suggestion only. So if you find your favourite tool missing, don’t get panic. Cheers… :-)