I've been a C, C++, PHP, perl, Python and JS developer before I started dev-ing in Java. Java's learning curve was the biggest, not the language itself, but the enormous ecosystem. The ecosystem is also very mature, so unlike the JS ecosystem which is still figuring out where it's going, Java's already done that, made a name for itself as a reliable way to implement enterprise projects and as a result, Java developers are actually building enormous enterprise systems rather than building the one framework after the other.
Java is also moving a lot slower than other languages due to the enormous amount of legacy systems and syntax that needs to be taken into account. Any minor change in the language has already proven itself to work in the industry rather than Java being the guinea pig and also has to go through the JCP committee where it will be debated and prototyped until something solid and reliable can be implemented.
J2EE I've mostly skipped since it was lagging behind features implemented in Spring (I mean, Spring had dependency injection many years before J2EE, SpringMVC's REST was years ahead of J2EE, etc). Kotlin's birth was as a result of annoying things in Java that weren't being addressed fast enough without abandoning the ecosystem.
I think the learning curve is considered too big for most new developers, hence the reason they rather go for the simpler options where you can immediately see results. With every iteration of Java, the amount of stuff you need to learn just gets bigger and bigger. I've only recently started using Java8 to its fullest, I can just imagine how insane it must be learning Java from scratch.
So to answer your question, it depends who you ask - those who know it well will swear by it, those who don't know it well will probably look at you as if you're from another planet for using it.