Crowie
Crowie

Reputation: 3272

IntelliJ does not show 'Class' when we right click and select 'New'

We're creating a new project in IntelliJ and must have something wrong because when we right click on a directory, select New and then get the context menu, Java based options are not shown. Currently get things like File, some HTML options, XML options.

We have assumed so far it's something we haven't configured correctly in the Project/Module configuration. The new module we are talking about is part of a multi module project. We created it using a Maven web archetype.

Any help configuring the project nature?

Edit: The answer is basic: 'That moment when you realise somethings not working because you haven't been clicking 'Apply'... :) We had a good laugh at ourselves when we discovered this'

Upvotes: 195

Views: 200769

Answers (13)

Taimur
Taimur

Reputation: 619

You need to mark your java directory as Source Root ,

  1. Right Click on Java directory
  2. Select Mark Directory as option and click on the sub menu option Source Root

Mark Java directory as Source root

Upvotes: 6

vvauban
vvauban

Reputation: 475

If you just created your project, let IntelliJ finish indexing your project.

Upvotes: 1

alphcoder
alphcoder

Reputation: 130

Make sure you are not creating a package name which is same as predefined keywords in java like enum, int, long etc.

In my case I was trying to create a class under "enum" package. As soon as I changed package name to "enums" I was able to create class in it.

Upvotes: 2

Manish Kumar
Manish Kumar

Reputation: 589

I will share another interesting point. If you try to create a package with the reserved keyword then it will be treated as a normal directory and not a package. I was having this issue where I was creating a package named import and it was converting that to a directory.

A sample of mine

Upvotes: 4

Manoj Reddy Mettu
Manoj Reddy Mettu

Reputation: 139

Most of the people already gave the answer but this one is just for making someone's life easier.

TL;DR

Screenshot of how to add test sources

You must add the test folder as source.

  1. Right click on java directory under test
  2. Mark it as Tests
  3. Add src/test/java in Test Source Folders

Thats it, IntelliJ will consider them as test source.

Upvotes: -1

liuyong
liuyong

Reputation: 1057

There is another case where 'Java Class' don't show, maybe some reserved words exist in the package name, for example:

com.liuyong.package.case

com.liuyong.import.package

It's the same reason as @kuporific 's answer: the package name is invalid.

Upvotes: 1

user3218923
user3218923

Reputation: 317

you need to mark your directory as source root (right click on the parent directory)

and then compile the plugin (it is important )

as result you will be able to add classes and more

enter image description here

enter image description here

Upvotes: 21

Coder Roadie
Coder Roadie

Reputation: 860

Had this issue too. Invalidating Caches/Restart did the trick for me. Please upvote so the the IntelliJ folks take this more seriously. This gives the IDE a terrible UI/UX experience.

https://youtrack.jetbrains.com/issue/IDEA-203100

Upvotes: 2

ShatyUT
ShatyUT

Reputation: 1365

Another possible solution is that the project name is not acceptable. For example, creating a project with spaces in the name does not block the project creation but the proper sources are not marked and when those are marked manually, I still was unable to create classes. Recreating the project with hyphens (-) instead of spaces corrected the problem for me.

Upvotes: 3

Xian Shu
Xian Shu

Reputation: 708

Project Structure->Modules->{Your Module}->Sources->{Click the folder named java in src/main}->click the blue button which img is a blue folder,then you should see the right box contains new item(Source Folders).All be done;

Upvotes: 7

kuporific
kuporific

Reputation: 10322

This can also happen if your package name is invalid.

For example, if your "package" is com.my-company (which is not a valid Java package name due to the dash), IntelliJ will prevent you from creating a Java Class in that package.

Upvotes: 80

Arnaud Denoyelle
Arnaud Denoyelle

Reputation: 31225

The directory or one of the parent directories must be marked as Source Root (In this case, it appears in blue).

If this is not the case, right click your root source directory -> Mark As -> Source Root.

Upvotes: 463

Brian Agnew
Brian Agnew

Reputation: 272257

If you open your module settings (F4) you can nominate which paths contain 'source'. Intellij will then mark these directories in blue and allow you to add classes etc.

In a similar fashion you can highlight test directories for unit tests.

Upvotes: 7

Related Questions