Eclipse / Javaコード補完が機能しない


595

Eclipse 3.4.2をダウンロードして、いくつかのプラグイン(注目すべきは、EPIC、Clearcase、QuantumDB、MisterQ)でセットアップしました。

Javaプロジェクトを編集しているときに、コード補完が機能しないことがわかりました。入力String.してctrl+ を押すとspace、ポップアップに「デフォルトのプロポーザルがありません」と表示され、下部のステータスバーに「使用できる補完がありません」と表示されます。

何か案は?


1
Ubuntuでこれを修正しようとしている人のために、[ここに答えがあります] [1]。[1]:askubuntu.com/questions/243639/...
シンタグマ

回答:


1246

「」のデフォルトオプション復元してみてくださいWindows > Preferences > Java > Editor > Content Assist > Advanced

この設定画面に表示されるデータの種類の例ですが、現在のデータとは限りません。

日食コンテンツアシスト設定

(このブログ投稿のVadimから「Eclipse(Mylyn)のコンテンツアシスト複製」
Mylynエントリが重複している場合は(Mylyn)、名前に「」が含まれていない重複エントリのチェックを外します)

Eclipseのヘルプページを復元するために、デフォルトのリストを定義します。

「デフォルト」のコンテンツアシストリストに含まれる提案の種類を選択します

  • その他のJavaプロポーザル、
  • SWTテンプレートの提案、
  • テンプレート提案、
  • タイプの提案

3
これが私の環境でどのように変更されたかはわかりません-私は確かにそれをしませんでしたが、あなたの解決策は機能します!ありがとう。
スタントン

71

他の誰かがGoogleでこれを見つけた場合に備えて、ここに回答を追加します。同じ症状; 別の問題。私にとって、型キャッシュは壊れていました。

http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.htmlから

  • Eclipseを終了する
  • workspace / .metadata / .plugins / org.eclipse.jdt.coreに移動します
  • * .indexとsavedIndexNames.txtを削除します
  • Eclipseを再起動し、問題のタイプをCtrl+ Tで検索します。インデックスが再構築されます。

+1、これでうまくいきました。また、以前はEclipseに悩まされていたため、すべてのオプションが別の言い方をしているにもかかわらず、私のプロジェクトは1.5であると考えていました。
Philip Guin 2013年

3
待って、気にしないで。あなたの方法を試した後、CAは1回だけ機能し、その後再び爆発します。ああ。ワークスペース全体を再作成した後でも問題は解決しません。ここでは他の解決策は機能しないようです...
フィリップグイン2013年

2
+1。注:ラムダ式でコンテンツアシストを試した場合、Eclipseバージョンでは十分にサポートされない可能性があります。
Bludwarf 2016年

とてもうまくいきました。ありがとうございました!
Modo

27

誰かがここに来てオートコンプリート機能をアクティブにしたい場合は、

Preferences -> Java -> Editor -> Content Assist.

次に、[ 自動アクティブ化]セクションで、Javaの自動アクティブ化トリガーを入力します。

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

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


これにより、大きなコードベースで日食が非常に遅くなる場合があります。
J-hoの

19

Xfce +を実行していて、IBusプラグインがアクティブになっている場合、キーボードショートカットの競合が発生する可能性があります。

私のブログの詳細情報を参照してください:http : //peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

更新

@ nhahtdhさんのコメントにより示唆されるように、直接お答えするためにいくつかのより多くの情報を追加:Iバスは、デフォルトでのXfceの用途にプラグインCtrl+ Spaceキーボードレイアウトの切り替えのショートカット。これを変更するには、オプションに移動して、他の好きなものに変更します。


3
今後ブログが利用できなくなった場合に備えて、ブログの重要な部分をここに含めてください。
nhahtdh 2013年

2
の同じ問題LXDEPreferences->に移動しKeyboard InputNext input methodショートカットを削除します。
Kshitiz Sharma 14

1
Cinnamonデスクトップ環境でも同じ問題が発生します。
Akkusativobjekt 2015年

11

プロジェクトのlibを確認してください。同じクラスが利用可能なそのようなjarファイルが2つ含まれている可能性があります。または、コード内の1つのクラスが2つのjarファイルで参照できると言う場合があります。そのような場合、Eclipseは完全に混乱しているため、コードの支援を停止します。

これをチェックするより良い方法は、アシストが機能していないファイルに移動し、そこにあるすべてのインポートをコメント化することです。インポートを1つずつ追加し、コードアシストが機能しているかどうかをインポートごとにチェックします。 。


9

これらはどれも私にとってはうまくいきませんでした。

特定のクラスで一度だけこの問題が発生していました。私にとって最終的に機能したのは、問題のあるクラスを削除して再作成することでした。問題は解決しました...ミステリーはそれほどではありません!


5

IE用Googleツールバーをインストールしている場合は、同じ問題に直面する可能性があります。なぜなら、ツールバーはショートカットctrlをキャプチャするから+Spaceです。


5

私はこの問題を抱えていて、@ Marcのように、特定のクラスでのみです。Open With = Java Editorを指定する必要があることを発見しました。私はEclipseの初心者なので、プレーンテキストエディターを使用しているだけだとは気づいていませんでした。

パッケージエクスプローラーでファイルを右クリックし、[プログラムから開く]を選択します。


4

私はこの問題に直面し、問題を解明するために何時間も費やしました。上記のさまざまな回答で述べた手順を実行しようとしましたが、私が見つけた解決策はモナが提案したものと同じ行にありますが、少し異なります。モナの回答にコメントとして追加しようとしましたが、オプションがありませんでした。私の日食の問題は、クラスパスが何らかの理由で破損し、すべてのjarファイルと依存プロジェクトが見つからなかったことでした。リポジトリから最新の.classpathを取得した後、正常に動作しました。


4

私もこの問題に直面していますが、別の方法で解決されています。私が従うステップは他の人に役立つかもしれません。

  1. プロジェクト(作業中のプロジェクト)を右クリックします。
  2. [プロパティ]> [Javaビルドパス]> [JREシステムライブラリ]に移動します。
  3. 右側の[編集...]をクリックします
  4. JRE 7を選択

4

設定を確認しても完了が機能しない場合は、次のようにします。

  • ディレクトリ構造が正しいことを確認してください。

ファイルの横に正しいアイコンが表示されていますか?:

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

Eclipseでファイルがどのように処理されるかがわかります。

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

Maven webappアーティファクトでその話をしたので、私はこの回答を投稿しています。デフォルトでは、Maven-WebAppはソース用のフォルダーを作成せず、Javaをリソースに入れ、5分間何が起こっていたのだろうと思いました... :)


3

[ウィンドウ]> [設定]> [Java]> [外観]> [タイプフィルター]内の多くのオプションを除外していないことを確認します

このリストの項目は、クイックフィックス、オートコンプリート、または[タイプを開く]ダイアログなどの他のさまざまな場所に表示されません。


3

私のために働いた別の解決策は、Java->外観->タイプフィルターに移動してすべて無効にすることですここに画像の説明を入力してください


3

多分これは同じ問題に遭遇した他の人々を助けるでしょう。

私のセットアップ:誰かが作成した古いGradleプロジェクト(バージョンGradle 2.12)で、Gradle Import Wizardを使用してSTS(Eclipse Oxygen.2(4.7.2))にインポートしました。

コード補完も機能しませんでした(そして、Javaファイルに中空のJがまだあります)が、少なくとも次のようにしてコード補完を機能させました。

  • プロジェクトフォルダーを右クリック>プロパティ> Gradle>ワークスペース設定の構成> Java>エディター>コンテンツアシスト>詳細
  • 「上部ウィンドウのJavaプロポーザルをチェックしてください。
  • 2x適用して閉じる

2

私の場合、Intellisenseは1つのプロジェクトのいくつかのクラスでのみ消えていました。これは、ビルドパスにライブラリが欠落していることが原因であることが判明しました(以前は機能していました)。

だから間違いなくEclipseのすべてのエラーや問題をチェックし、ライブラリが欠落していないかどうかを見つけてください


2

私はこれに出くわしました、そしてそれは私がテキストエディターでファイルを開いていて、Javaエディターではなかったということでした。

https://stackoverflow.com/users/607470/elroy-flynn 応答にコメントしたかったのですが、コメントの追加は、評価が50になって初めて機能しますか?わからないWTF ...

ありがとう、トム


評判ブロックは基本的に、人々がより多くを得るだけでなく、より多くを得る理由があるのです。また、コミュニティへの関与と尊敬の度合い(つまり、評判)の指標としても機能するため、評判が高まるにつれて、より多くの特権を得ることができます。サイトの動作の詳細については、ツアーをご覧ください:stackoverflow.com/tour
Amndeep7 2016年

これは実際には単なるコメントであり、あなたが言及した回答はすでにテキストエディターの問題をカバーしています。あなたがそれを削除してカルマを失いたくないのなら、私は理解しています。
ヌメノン

1

私にとっての問題は、同じライブラリの複数のバージョン間の競合でした。Eclipseアシストはmavenより古いバージョンを使用していました。

.m2ディレクトリに移動し、不要なlibバージョンを削除して、Eclipseを再起動する必要がありました。


1

プロジェクトディレクトリに属していないファイルを編集すると、 Eclipse Neonで問題が発生します。同じファイルをプロジェクトのルートディレクトリ(srcディレクトリではなく)にコピーすると、完了が機能し始めます。

別のディレクトリからファイルを開くと、JREの完了のみが機能します。それは例えば:java.完了しますが、完了junit.しません。


1

誰かが何も機能しない絶望的なポイントに達した場合に備えて...コンテンツアシストがなんらかの理由で縮小されたため、提案が表示されず、「非Javaの場合はCtrl + Spaceを押す...」が表示されることがありました。つまり、コンテンツアシストのコーナーをドラッグしてポップアップを拡大するだけでした。

恥ずかしいです。それが役に立てば幸い。

注:これは、Eclipse Oxygenを使用するXfce4を備えたUbuntuサーバーでした。


1

最新の3-19日食ビルドを使用する人のために:

OxygenからEclipseの3-19バージョンにアップグレードするときに発生したので、アップグレードプロセス中にオートコンプリート機能が正しく移行されなかったと思います。

私にとってうまくいった唯一の解決策は、新しいEclipseワークスペースを作成し、それにプロジェクトをインポートすることでした。数分かかる場合がありますが、それだけの価値があります。他のソリューションに費やした時間と比較すると...


はい、私はJavaメソッドを参照できません。[参照/開く]宣言をクリックしても機能しません。そして、これは非常に頻繁に発生しており、Javaクラスファイルは事実上テキストファイルになっています。だから私はワークスペースを削除し続け、Mavenプロジェクトをインポートして、すぐにアクションに戻します。
signonsridhar


0

Eclipse 2019-09にアップグレードしてから、この問題に遭遇しました。上記のいくつかの提案に基づいて、これは私のために働いたものです。

私はEclipse-> Preferences-> Java-> Editor-> Content Assist-> Advancedに行かなければなりませんでした。

Java Editor / Content Assist Advanced

キーバインディングの提案、Java Non-Type、Java、Java(Task-Focused)、またはJava Typeの提案をオンにすると、オートコンプリートを使用できることがわかりました。すべてオンにすると、オートコンプリート機能だけでなく、重複するメソッドがリストされます。私は推測していますが、おそらくJava Type Proposalsを使用します。これら4つのタイプで何が異なるかを明確にしていただければ幸いです。


0

Java Spring BootプロジェクトでSTSを実行すると、次のように機能します。

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

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