IntelliJインポートの整理


254

IntelliJには、Eclipseと同様のインポートの整理機能がありますか?私が持っているのは、複数のクラスがインポートされていないJavaファイルです。例:

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

Eclipseでは、[インポートの整理]を使用でき、java.util.Mapとの両方が自動的にインポートされjavax.swing.JTableます。IntelliJでは、各クラスに個別に移動して選択し、Alt-Enterキーを押す必要があります。インポートの最適化機能がありますが、既存のインポートを並べ替えて展開するだけです。

IntelliJ 10.5を使用しています。


17
私はまだ日食のCtrl + Shift + Oの代替を見つけることができません
appbootup

16
Ctrl + Alt + Oを試しましたか?一意のインポートが自動的に追加され、Alt + Enterキーを押すことで類似のインポートから選択するように求められます。FYI、私はIntelliJの12を使用しています
divesh premdeep

6
Ctrl + Alt + Oが決定できないインポートを返さないことを除いて...たとえば、選択するインポートが複数ある場合(それらを選択する方法を理解しようとしているので、彼らが私のキーボードで提案する文字記号を持っている)、それから、それは「未使用のインポートが見つかりません」と言うでしょう
Azurespot 2015

回答:


356

Ctrl+ Alt+ Oコード→インポートの最適化...)は、Windows / LinuxおよびmacOSキーマップの両方で探しているものです。

「最適化」と表示されていますが、そのように構成されている場合は、次のことも行われます。

  • 既存のインポートを整理する
  • 不要なインポートを削除する
  • 新しい必要なインポートを追加する
  • その場で明確なインポートを追加する

あなた調整できる自動インポート「の下の設定設定→編集→一般→自動インポートデーブによって記載されているように

設定→エディタ→コードスタイル→Java→インポート」でインポートの自動順序を変更することもできます。


14
おそらく混乱のために、私は一時的な反対投票を続けています。これ元の質問をどのように満たすかを説明するために、私の回答を更新しました。
Ryan Stewart

4
依存関係のパッケージ名が変更されている場合は機能しません。それでも明確な場合でも、影響を受けるクラスごとに、ClassNameをクリックしてAlt + EnterとEnterを押す必要があります...
Superole

7
Macでは、CTRL + ALT + Oも(少なくともAndroid Studio 1.0では)
jlapoutre

9
「あいまいでないインポートをその場で追加する」オプションがデフォルトでチェックされていないのはかなり愚かです。クラスごとに自分でこれを作ることを好むのは誰ですか?
toni07

3
する必要がありSettings → Editor → General → Auto Importますか?
Steve Pitchers 2017年

100

"Settings -> Editor -> General -> Auto Import"には、自動インポートに関するいくつかのオプションがあります。明確なインポートのみが自動的に追加されます。これはオプションの1つです。


この回答に対する十分な賛成票はありません。はい、@ ryan-stewartの回答はOPの質問に完全に回答しますが、この回答は、OPが尋ねなかった質問の解決策を提供します。
ジョナサンランドラム2016年

7
今ですSetting > Editor -> General > Auto Import
ラッキー

チェックを追加することを修正しましたclasses
Andrea Bergonzo 2017年

パッケージ/フォルダー/プロジェクトレベルでは機能しませんか?プロジェクト、src、javaで「ctrl + alt + o」を実行し、mvn clean testを実行しました...最近のリファクタリングで「シンボルが見つかりません」がまだ表示されます。
老僧、

@ old-monkエディターが知っていることで動作します。リファクタリングの何かが壊れている可能性が高いですが、言うことは不可能です。
デイブニュートン

44

シンプルで短い解決策が私にとってうまくいきました。

移動File- > Settings- > Editor- > Auto Import- > Java(左パネル)と、物事の下に行います。「のチェックボックスを選択Add unambigious imports on the fly」と「はOptimize imports on the fly

これを参照してください。

ここに画像の説明を入力してください


パッケージ/フォルダー/プロジェクトレベルでは機能しませんか?プロジェクト、src、javaで「ctrl + alt + o」を実行し、mvn clean testを実行しました...最近のリファクタリングで「シンボルが見つかりません」がまだ表示されます。
老僧、

44

以前の回答で@ dave-newtonと@ ryan-stewartによって指摘されたOptimize ImportsAuto Importに加えて、次の場所に移動します。

  • アイデア<= 13: File menu > Settings > Code Style > Java > Imports
  • IDEA> = 14:(File menu > Settings > Editor > Code Style > Java > Importsヒントのために@ mathias-baderに感謝!) 設定ダイアログ

そこで、グループ化と順序の調整やインポート、「Class count to use import with '*'」などを微調整できます。

注:
IDEA 13以降、IDEAの「スタートページ」からプロジェクトのデフォルト設定を構成できますConfigure > Project defaults > Settings > ...。これで、すべての新しいプロジェクトにデフォルト設定が適用されます。 ここに画像の説明を入力してください


7
IntelliJ IDEA 14ので、これは下にありますSettings > Editor > Code Style > Java > Imports
マティアス・バーダー

@ mathias-bader「設定」ページの変更を指摘してくれてありがとう
t0r0X

1
スクリーンショットの称賛!大好きです。ビジュアルは1,000ワードに相当します。
atom88

42

2015年7月-IntelliJは単一の関数によるインポートの自動解決をサポートしていないと結論しました。「インポートの整理」は、未使用のインポートを削除するだけで、インポートされていないタイプは解決しません。Control-Spaceは、単一のインポートされていないタイプを解決します。すべてのタイプのインポートを解決する単一のアクションは存在しません。


11
これは私の経験です。イライラする。
ayahuasca

1
これも私をつまずかせました。以下の@rohitのソリューションを参照してください。ファイル->設定->エディタ->一般->自動インポート-> Javaで、彼がハイライトした3つのオプションすべてをチェックします。これでうまくいきました。
カールロスマン

1
非常に不正確であるため、これは受け入れられた回答であることに奇妙です。stackoverflow.com/a/8609200/839646を参照してください。
Ryan Stewart

1
@RyanStewartは、あいまいなインポートをEclipseのように解決しません。あいまいな場合、Eclipseはプロンプトを出しますが、IntelliJはそれを無視します。
Steve Kuo

9

インポートを整理するファイルに移動するか、パッケージ全体をクリックするか、CTRL + ALT + Oを押してプロジェクトをクリックする


1
この答えはすでに存在しています。その回答へのコメントとして、追加情報(「パッケージ全体をクリックするか、プロジェクトでCTRL + ALT + Oを押すよりもクリックできます」)を追加することを検討できます
Zach Lysobey 2013

9

IntelliJ 14では、自動インポートの設定へのパスが変更されました。パスは

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

次に、上記の手順に従い、その場で明確なインポートを追加をクリックします

これがデフォルトで設定されない理由を私は想像できません。



2

不足しているビューの上にマウスを移動し、ウィンドウのキーを押すだけです ALT + ENTER


2

ALT + ENTERは日食の習慣とはかけ離れていて、IDEAではマウスオーバーが機能しなかったので、setting>IDESetting>Keymap>Show intention actions and quick-fixesマウスの左クリックに変更しましたが、マウスオーバーをサポートしていませんでした!しかし、マウスの左クリックは問題なく、私の意図に最も近いものでした。


2

ようやくこのイライラする問題の回避策を作成しました。私はこの回避策に完全に満足していませんが、何もしないよりはましです。

基本的に、ソースコードを貼り付け、明確なインポートが修正されたら、を押しF2て次のコンパイラエラーを強調表示します。現在のエラーが輸入行方不明のエラーがある場合は、を押しAlt+Enter、その後、Enter選択し、Importその後、正しいインポートを選んで、オプションを選択します。次に、F2もう一度押します。


1

そのプラグインは、ファイルの保存時に「インポートの整理」アクションを自動的に実行します:https : //github.com/dubreuia/intellij-plugin-save-actions

インストールするには、「ファイル>設定>プラグイン>リポジトリを参照...>「アクションを保存」>「コードツール」を検索します。次に、「インポートの整理」保存アクションをアクティブにします。


1つの(欠落している)機能についてツールを判断することは、慎重な判断とは見なされない場合があります。プラグインが機能しない場合は、github.com / dubreuia / intellij-plugin-save-actions / issuesでバグを埋めてください
Alexandre DuBreuil 2015年

5
あなたは正しい、それは通常の状況では思慮深い判断ではありません。しかし、これは、究極のツールからの驚くほど欠けている基本的な機能へのフラストレーションです。私はこのシンプルで重要な機能を成功させるために苦労して2時間費やしました。そして、さらに悪いことに、デフォルトで組み込みの機能ではなく(Eclipseがどのようにエレガントに行うかなど)、それを実現するためにプラグインを作成する必要が本当にありました!最先端技術と最も複雑なジャンボジェット機を構築するようなものですが、エアコンはありません。代わりに、各乗客に扇風機が与えられます。Eclipseで1秒かかりました。
DhafirNz

1
実際、このプラグインを使用すると、IntelliJの問題と弱点が明らかになりました。このプラグインは、自動保存のたびにIntelliJを乗っ取り、使用できなくなって遅くなるため、無効にする必要がありました。これは、何か入力するたびにすべての保存アクションを実行しようとするためです。自動保存を何らかの方法でオフにできる場合、このプラグインは実際に非常に役立ちます。
DhafirNz 2015年

0

インポートが1つしかない場合(クラス名に赤い下線が付いている場合)をクリックして、その上にマウスを移動すると、青い推奨インポートステートメントが表示されます。あなたがヒットした場合、Altキー+ Enterをこの時点では、インポートはファイルに含まれますと赤い下線が消えるはずです。


これはマルチプラットフォーム機能であることを確信してください
Zach Lysobey 2013

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.