views:

1815

answers:

21

Java doesn't seem nearly as "well served" as .NET with tool lists on the Internet. There's James Selvakumar’s article entitled "Must have tools for a Java Developer" which has items I don't agree with. (Do FireFox and MySQL qualify as development tools?).

There is also the Java Power Tools book.

Assuming you already have a half-decent IDE and source safe repository, what three Java tools are on your "must-have" list?

Update (03/11) : Summary of the answers:

+3  A: 

javap. :-) Lets you figure out exactly how code gets translated, especially if you're writing code in, say, Jython or Groovy.

Chris Jester-Young
A: 

My only "must have" items are gvim and make. And Arrogant Bastard Ale.

Paul Tomblin
A: 
  1. Testing tools: JUnit, preferably along with a mocking framework (e.g. Mockito).
  2. A build tool of choice.
Lyudmil
+2  A: 

I use a tool (that I developed) which tracks everything I do (and lets me quickly inject notes) to create sort of a journal that I can then use when returning to things. It helps me track all those little ideas and realizations, etc.

The same tool also "pushes" things that I tagged in my functions (assumptions, notes, "do" and "don't do" directives). When when I look at a bunch of calls, calls to targets that have that information are decorated, helping me remember that there are certain things I need to know aobut that service.

Uri
[If anybody wants to see the tool, http://emoose.cs.cmu.edu]
Uri
@Uri, if you edit your post to add the URL it will be more visible to others ;-)
johnstok
But that would be advertising on StackOverflow which is not why I gave the answer :)
Uri
+15  A: 

I don't want a half-decent IDE, I want IntelliJ IDEA.

Also a decent profiler is very useful. The NetBeans one is usable and free, but JProfiler is preferable.

EDIT: My 3 recommended free tools would be Hudson, FindBugs and Cobertura.

Dan Dyer
IntelliJ IDEA is great! I use it at work, I like it so much more than eclipse that I'm tempted to pay the hefty license fee to get it at home.
TM
The link to Hudson is wrong. It should be:https://hudson.dev.java.net/
nzpcmad
I fixed the link to Hudson. However, the change message has a typo in it (K is next to an X on Dvorak). :-)
Chris Jester-Young
+1  A: 

1) Xemacs + IDE(eclipse, idea or netbeans) with powerful debugger like Firebug, etc
2) yourkit profiler
3) wireshark/wsmonitor/SoapUI/Fiddler

anjanb
+6  A: 

JIRA. Admittedly not a a Java-specific tool (though it is written in Java).

Don
+4  A: 

Hudson, Maven, trac

I'd give Hudson a resounding +1, but can't, as you put Maven in the same answer, and I don't see Maven as a "must-have" tool.
Jonik
A: 

emacs (it qualifies for at least 3 tools).

james
+4  A: 

Eclipse with the Test & Performance Tools Platform installed.

Hans
+2  A: 

pack200. Expect a dramatic size reduction of your distribution jar files. Even your 50 MB rt.jar can compress to less than 5 MB using pack200 + 7zip (or NSIS installer that also uses LZMA). Nice for distributing applications via web.

yuku
really? that should be documented somewhere!
dfa
A: 

I agree with most of the @Dan Dyer choices. I prefer Yourkit for a profiling and I'd add JAD, JClasslib and UMLet (not really Java specific) into the mix.

ddimitrov
+2  A: 
  • IntelliJ IDEA (Anything else is wasting my time)
  • ANT + CI server (Hudson)
  • Issues tracking system. Bugzilla works well. Jira is fine.
  • Profiler, JProfiler
Rastislav Komara
+2  A: 

I really like to work on a project with Maven2 (for build management), Hudson (for Continuous Integration) and Sonar (for software quality control).

romaintaz
A: 
  1. Intellij IDEA
  2. Ant
  3. JUnit and EasyMock
  4. VMware with JBOSS
  5. Jira.
  6. Cobertura and QALab.
MexicanHacker
+2  A: 

Next to the big list of tools, I'd like to add clover and bamboo which are both great products.

André
+1 to clover too!
Chii
A: 

Just a thought but in the summary of answers can you link all those tools to their respective homepages ? Would be very helpful. :)

Done. Hope it helps.
nzpcmad
A: 

nowdays my java toolbox contains:

  • netbeans
  • maven (with plugins for cobertura, findbugs, PMD)
  • ant (sometimes :))
  • junit 4.5 (theories)
  • mockito
  • antlr
  • glassfish
  • hudson
  • mercurial is my SCM of choice slowly migrating from subversion
dfa
A: 

my $0.02 worth...

mlo55
A: 
  • IntelliJ IDEA + Vi plugin (best of breed)
  • yourkit profiler (best of breed)
  • Hudson
  • JUnit or TestNG
  • Ant + CI Server
KingInk
A: 

Jester does some "semantic" code coverage by making small changes in your source code and checks if you test still pass. Frankly, Jester tests your tests.

rudolfo.christ