David Newton wrote:
Just use Eclipse or NetBeans if you're dead-set on using an IDE at this stage in your programming life.
I am with David here. If you are learning Java, staying away from IDEs will also help you.
This does not necessarily mean you need to code on the command line. There are lot of text editors which are very useful for indentation and similar features. I have personally used Textpad when started. I am sure there are lot more.
If you are interested, and let us know the OS, people can offer suggestions.
Dear lord, here we go. It would be really cool if this post could just be the end of it. An IDE, or lack of one, is a personal choices (unless work forces one on you) and most users are quite passionate about the one that is their favorite. And everyone posting here (except Bear) is giving you their opinion. The best thing to do is take the following advice.
1. If you are just learning how to develop the best thing to do is to use the command line and a generic editor like Notepad++ for windows or something like gedit/kate for Linux or TextEdit/TextMate for Mac. You could also choose VI or Emacs (another passionate discussion). The point is the less handholding by an IDE the better. This gives you the experience you need to understand what is going on when you compile code, adjust your classpath, handle stacktraces, etc. Using a IDE will shield you from some of this and I promise, it will come back to haunt you.
2. Once you are comfortable on the command line with a simple editor the following free options are available to you. This is by no means an exhaustive list...
a) Eclipse - Probably the most widely used free IDE. It's fairly light weight as far as IDE's go because you need plugins to do anything beyond basic java development. It does have excellent plugin support. This is also probably the most widely used IDE in the work market.
b) Netbeans - Probably the second most widely used free IDE. It's not as lightweight as Eclipse but does a good job. There are multiple downloads available depending on how much you need it to do.
c) JDeveloper - throwing this in for good measure. I really haven't read much on it lately so I have no idea how good it is. Considering the lack of questions here at the ranch on it I can assume 1 of 2 things. 1) It is so good no one ever asks questions about it or 2) it just isn't used that much.
d) JEdit - This starts out as a simple editor but after installing a few plugins can be nearly as good as the above mentioned IDE's. Just takes some getting used to and there is quite a bit of setup involved to get all the plugins you need.
Although there are more, this is more than enough info to get you started. What you need to do is follow my advice for #1 and then download and try each IDE. Then pick the one that you feel most comfortable with. This will probably be the most unbiased post you will see in this thread because I am not telling you which one to use.
Thank you for all your help. I am a semi-intermediate java developer and just need something so i can compile programs without changing the class path. I am currently using JCreator but it is uberslow. I need something that compiles but doesn't take 5 minutes to compile 50 lines of code.
Youngster, you want to really get my hackles up, start talking about "The Best". The world is more complicated than that, and an awful lot of today's problems come from people who take a black-and-white view to solutions. "We are Good! We are Pure! We are Holy! We tell the Truth! They are Bad! They are Evil! They are Satan! They are Liars! Kill them All and Peace Will Come. All that is Bad and Evil is THEIR Fault!" Bleah.
If you want lightweight, go with Windows Notepad. Or vi, if you're a Linux/Unix person.
However, if it's taking you 5 minutes to compile with an IDE, chances are your IDE isn't the problem. Assuming you have at least 600MHz of CPU horsepower, you probably are way short on RAM. Most of the modern GUI IDEs do horribly with less than 1GB, and even 2GB leaves room for improvement.
An IDE is no substitute for an Intelligent Developer.