As with everything it depends on your teaching style and the level and experience of your students. With that cavetate in mind http://www.bluej.org is worth a look.
I have been using eclipse and found it to quite useful especially when student wants to move to next level of programming like mobile / android development or other java based development or want to learn a new language...
For educational purposes BlueJ is ideal, especially since it connects so well with UML, which is very important for teaching OOP. However, I personally prefer using a more sophisticated IDE like NetBeans or Eclipse, since I believe that students should immediately get familiarized with industry-level tools. Otherwise, the learning curve from BlueJ to a more "professional" IDE would be too steep.
Thank @mark for sharing this new software, great for OOP the bluej.
Thank all for the input actually I've been using eclipse for multiplatform from web to mobile and netbeans fr desktop application as follow all of your reference.
For beginner it is better use eclipse so they can learn every thing from the first but for expert " IntelliJ Idea " is the best. I don't agree with NetBeans because it is complex without many advantage.
When a was student I often used NetBeans, but IntelliJ Idea, has lot features and facilities that allows to be the chosen one to this PL. But You should choose the comfortable one for the things you are doing.
You should first decide if you want to teach Java coding or Object oriented thinking. Many years experiences show that students, which first learned coding, have problems in later transformation to the architecture design. When these students should solve some problem, they start to thing, how to code it and it is very difficult for them to stay in the architecture level a design first the architecture of the designed project. Much better is first concentrate to the architecture design and let a code generator to code the designed programs.
We teach according the Architecture first methodology. We start with enhanced BlueJ that allows design even relatively complex programs. When we reach the limits of the integrated code generator, we review the programs designed in the first phase and show, how the code generator codded them.
Then we continue with design of programs that are behind the limits of the used code generator. However now the students now have the architecture thinking “under the skin” and can design complex programs much better.
I think starting from a text editor like Notepad in the first lessons is the best. I prefer Netbeans for newbies because it's more compact and easier to start. They can work with eclipse and IntelliJ Idea later.
To begin with, getting students to understand how to compile and run code using a text editor and the command line tools provided with the JDK is a first step I take when teaching Java. NetBeans is great for working with Swing because of the integrated GUI designer, but Eclipse is more commonly used in the industry.
I agree with Mohsen - Although we have let the students use Eclipse in the past, I would suggest having your students write applications in a text editor (with syntax highlighting) and learn to use the command-line to compile and run their applications. I think it's useful for students to understand the tool chain needed to compile applications, and IDEs tend to hide it. Indeed, we've had some difficulty when moving students from using an IDE (such as Eclipse) to having to compile their C programs using GCC.
That being said, teaching and cementing the underlying principles of OOP first might be better - this is especially important when it comes to teaching design patterns.
I can prefer starting from command line at eclipe with the first lesson. If you want to give a course with lots of sample, you can use this videos as Java Programming Tutorial. https://buckysroom.org/videos.php?cat=31 (200 videos and examples at that site) and that is for theory htttp://akademik.maltepe.edu.tr/~turgaybilgin/w/YZM_363_Java_Programlama
For the introduction phase, I still prefer simple text editor, such as notepad, vi, etc. and command line. I think this is basically needed by newcomer. But, the mature implementation in Java, I prefer netbeans, because it is very complete and sufficient.
I agree with Mr. Christoph. Students should know the basics of how Java programs are executed in command line before getting their hands on to fully supported IDEs. Syntax highlighting feature Notepad++ (best for Windows) or JEdit would be great as a standard text editor for any programming language.
Although I have less experience with Eclipse, my personal preference is more towards NetBeans. I handle UI, interfacing with web servers like GlassFish and databases like MySQL with much ease using NetBeans.
It is better to start with a simple text editor like notepad (windows) for beginners so that they can get accustomed to the Java's syntax. When they seem fine with notepad, you can introduce Eclipse.