ChatGPT解决这个技术问题 Extra ChatGPT

IntelliJ Organize Imports

Does IntelliJ have an Organize Imports feature similar to that in Eclipse? What I have is a Java file with multiple classes missing their imports. Example:

package com.test;
public class Foo {
    public Map map;
    public JTable table;
}

In Eclipse I could use Organize Imports and it would automatically import both java.util.Map and javax.swing.JTable. In IntelliJ I have to individually go to each class, select it, then press Alt-Enter. There is an Optimize Imports feature but all it seems to do is sort and expand the existing imports.

I'm using IntelliJ 10.5.

I still cannot find an alternative to eclipse's Ctrl+Shift+O
Have you tried Ctrl + Alt + O? It automatically adds any unique imports and prompts you to choose between similar imports by pressing Alt + Enter. FYI, I'm using IntelliJ 12.
Except Ctrl + Alt + O won't return an import that it cannot decide on... For instance, if there are multiple imports to choose from (which I'm trying to figure out how to choose them, as I don't have the character symbol they suggest on my keyboard), then it will say, "Unused import not found".

m
mcw

Ctrl + Alt + O (Code → Optimize Imports...) is what you're looking for, both on Windows/Linux and macOS keymaps.

It says "Optimize", but, if configured to do so, it will also:

organize existing imports

remove unneeded imports

add new required imports

add unambiguous imports on the fly

You can tune the auto-import settings under "Settings → Editor → General → Auto Import" as described by Dave.

You can also modify how the imports are auto-ordered under "Settings → Editor → Code Style → Java → Imports"


I keep getting transitory downvotes, probably due to confusion. I've updated my answer to explain how this does satisfy the original question.
It does not work when package-names in a dependency have changed. Even when it is still unambiguous I have to click the ClassName hit Alt+Enter and Enter, for each affected class...
On Mac it is CTRL + ALT + O as well (at least in Android Studio 1.0)
I find it quite stupid that the option "add unambiguous imports on the fly" is not checked by default. Who does prefer to make this by himself, class by class?
Should be Settings → Editor → General → Auto Import?
A
Andrea Bergonzo

Under "Settings -> Editor -> General -> Auto Import" there are several options regarding automatic imports. Only unambiguous imports may be added automatically; this is one of the options.


Not enough up-votes for this answer. Yes, @ryan-stewart's answer fully answer's the OP's question, but this answer provides the solution to the question the OP didn't ask: how do I fix this forever, not just how do I fix it this one time.
It's now Setting > Editor -> General > Auto Import
I fixed that adding the check on classes
it doesn't work on package/folder/project level, does it? I did a 'ctrl + alt + o' on project, src, java and did mvn clean test ... i still got 'symbol not found' for recent refactor.
@old-monk It works with what the editor knows about; it's more likely something in the refactor is broken, but impossible to say.
R
Rohit Mandiwal

Simple & short solution worked for me.

Go to File -> Settings -> Editor -> Auto Import -> Java (left panel) and make the below things: Select check box for "Add unambigious imports on the fly" and "Optimize imports on the fly"

Refer this.

https://i.stack.imgur.com/hZBUB.png


it doesn't work on package/folder/project level, does it? I did a 'ctrl + alt + o' on project, src, java and did mvn clean test ... i still got 'symbol not found' for recent refactor.
t
t0r0X

In addition to Optimize Imports and Auto Import, which were pointed out by @dave-newton and @ryan-stewart in earlier answers, go to:

IDEA <= 13: File menu > Settings > Code Style > Java > Imports

IDEA >= 14: File menu > Settings > Editor > Code Style > Java > Imports (thanks to @mathias-bader for the hint!)

There you can fine tune the grouping and order or imports, "Class count to use import with '*'", etc.

https://i.stack.imgur.com/y8hjV.png


Since IntelliJ IDEA 14, this can be found under Settings > Editor > Code Style > Java > Imports
@mathias-bader thanks for pointing out the "settings" pages change
Kudos for the screen shots! Love it. A visual is worth 1,000 words!
S
Steve Kuo

July 2015 - I have concluded that IntelliJ does not support automatically resolving imports with a single function. "Organize imports" simply removes unused imports, it does not resolve unimported types. Control-Space resolves a single unimported type. There does not exist a single action to resolve all types' imports.


This has been my experience. Frustrating.
This also tripped me up. See @rohit's solution below. File -> Settings -> Editor -> General -> Auto Import -> Java and check all three options that he has highlighted. This worked for me.
Odd that this is the accepted answer, as it's highly inaccurate. See stackoverflow.com/a/8609200/839646.
@RyanStewart it doesn't resolve ambiguous imports the same way Eclipse does. Eclipse will prompt when it's ambiguous, IntelliJ just ignore it.
I had the sam frustration, however, @Ryan is correct. CTRL ALT O , can add the missing imports. But you have to configure it in Setting > Editor -> General > Auto Import, and check "Add unambigous imports on the fly" Then resolves all imports in a class.
M
Martin Marconcini

navigate to the file where you want to organize imports or just click on the whole package or even click on the project than press CTRL + ALT + O


This answer already exists. You could consider adding the extra info ("you can click on the whole package or even click on the project than press CTRL + ALT + O") as a comment to that answer
J
Joe

In IntelliJ 14, the path to the settings for Auto Import has changed. The path is

IntelliJ IDEA->Preferences->Editor->General->Auto Import

then follow the instructions above, clicking Add unambiguous imports on the fly

I can't imagine why this wouldn't be set by default.


T
Tiago Gaspar

Shortcut for the Mac: (ctrl + opt + o)


No, Its control + option + o
Acctually this answer is the same keys as the one most voted in this question.
M
Manga Rao

Goto Help -> Find Action (Short Cut for this is Cntl + Shift + A) and type Optimize imports (Short cut for this is Cntl + Alt + O)


S
Shairyar

Just move your mouse over the missing view and hit keys on windows ALT + ENTER


A
Ali.Mojtehedy

ALT+ENTER was far from eclipse habit ,in IDEA for me mouse over did not work , so in setting>IDESetting>Keymap>Show intention actions and quick-fixes I changed it to mouse left click , It did not support mouse over! but mouse left click was OK and closest to my intention.


A
Alexandre DuBreuil

That plugin will automatically do the "organize import" action on file save: https://github.com/dubreuia/intellij-plugin-save-actions.

To install: "File > Settings > Plugins > Browse repositories... > Search 'Save Actions' > Category 'Code tools'". Then activate the "organize import" save action.


Judging a tool on one (missing) feature might not be considered as a thoughtful judgment. If the plugin do not work, do not hesitate to fill a bug there: github.com/dubreuia/intellij-plugin-save-actions/issues.
You are right, it is not a thoughtful judgment in normal situations. It is - however - a vented frustration on a stunningly missing basic feature from an ultimate tool. I spent 2 hours in agony trying to get this simple, essential feature to work, without success. And what made it worse, rather than been a built in feature by default (like how elegantly Eclipse does it) a plugin really needed to be written to achieve that! Its like building the a state of the art and most complex jumbo jet but without air-conditioning, instead, each passenger is given a paper fan! It took me 1 sec in Eclipse.
Actually, using this plug-in highlighted a problem and weakness in IntelliJ. I had to disable this plug-in because it hijacks IntelliJ on every auto-save, rendering it unusable and slow. This is because it tries to do all the save actions every I type something. If auto save can be turned off somehow then this plug-in will indeed be very useful.
M
Martin Vysny

I finally created a workaround around this frustrating issue. I'm not completely happy with the workaround, but it's better than nothing.

Basically, after you paste the source code and unambigous imports are fixed, just press F2 to highlight the next compiler error. If the current error is an import-missing error, press Alt+Enter, then Enter to select the Import option, then pick the correct import. Then, press F2 again.


D
Dave Newton

If you are missing just one import (the class name has red underline), click and hover the mouse over it, and a blue suggested import statement will appear. If you hit, Alt + Enter at this point, the import will be included in the file and the red underline should disappear.


Pretty sure this is a multi-platform feature
C
Cristan

Shortcut on Android Studio on MacOS: Control + Option + O


C
Clara

[This might still be a useful link for a quick tip on how to optimize import in IntelliJ idea] https://youtu.be/14odF-8X76o


Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.