Helping students adjust to using industrial-strength IDEs
IDEs are tools that are designed to solve specific problems.

They're great for stuff like:


Compiling multiple projects that contain a bunch of classes.
Dealing with dependencies on multiple libraries.
Handling stuff related to coding, like starting up servers.
Packaging and deploying your application.


If the students haven't encountered these problems, then honestly they probably aren't ready to use an advanced IDE. They don't have a need for it, and they should probably stick with whatever works for them.

Another consideration is that students need to understand what's going on "behind the scenes" before jumping into using an IDE. At a bare minimum, they need to understand:


Basic command line interaction: How do you navigate over directories? How do you run programs?
System Path: How does your computer know how to locate Java? How can you change this?
Compiling and Running code: How do you compile a .java file via the command line? How do you run a .class file? What is the difference?
Classpath: How do you use a library from your code, from the command line?
Errors: What is the difference between a compiler error and a runtime error? How do you read a stack trace?
Documentation: How do you consult the docs to figure out what functions a class has?


I say they need to understand this, because too often I see students who don't understand what the difference between path and classpath is, or who don't know what the red squiggly lines in their IDE are telling them, or who rely on auto-complete and copy-paste for everything.

All of that being said, I think you should start with a very basic text editor and the command line. Spend some time there and make sure they understand the basics. Then as their projects get more complicated, they'll naturally see the benefits of using an IDE.

Present the IDE as a solution to the problems that they're already experiencing.


"Who here is sick of specifying the classpath argument whenever they compile their code?"
"Does anybody wish it was easy to see what functions a class has without needing to do read through the docs?"
"Now that we know how to export our application via the command line, let's see a quicker way to do that."
"Now that we've learned how to debug using a piece of paper and a pencil, let's see a way to do that automatically."


Then introduce the IDE and point out specific ways to solve their specific problems. Throwing them in the interface and saying "here are 100 different things this can do" is going to be overwhelming. Build on what they already know, and solve the problems they're already experiencing with a more basic editor.

This makes sure that they understand what's going on behind the scenes, which helps demystify the process. It also gives them a good reason to use an IDE, by framing it as a tool that helps make their lives easier, which is what it should be.