Most people suggest learning Java using the Developer's Kits, the J2SE SDK, also known as JDK, available at http://java.sun.com/j2se . These kits include a Java compiler, known as javac. You'll need a text editor. Notepad will do, but it helps to have line numbers. I usually use EditPad. I understand that MS Visual J++ uses a very old version of Java, not the Java 2 platform, and is intended for developing programs using proprietary Microsoft technology instead of portable Java technology. If that is what you want to do, you may be better off with Microsoft C# or Visual Basic. JBuilder is popular. I use Eclipse, which is free. But I agree with those who suggest you start with a text editor and the JDK, and pick up an IDE like JBuilder or Eclise only after you know the fundamentals of the language. I've heard of an IDE designed for teaching Java, called BlueJ. But I've not looked at it and don't know whether to recommend it as an alternative to notepad and javac. You may want to check the IDE Forum for more discussion of development environments. For example, see this.
You should never buy a Java compiler. That is free. If you are looking for an IDE you are looking for a whole lot more than just a compiler. Please be aware that Visual J++ is NOT a Java compiler, it is a J++ compiler. Microsoft has depricated J++ in favor of J#. You would compile J# using a .NET compiler or buy Visual Studio.NET - in which case it would make more sense to code in C# - which is Microsofts chosen Technical Direction. For java IDEs JBbuilder is very good. Visual Age is good. We have a whole forum for IDE's and other tools
"JavaRanch, where the deer and the Certified play" - David O'Meara
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com