私の現在のEclipseはOxygen.2リリース(4.7.2)で、Java 9.0.1があります。基本的にJava 9は機能し、特に自動インポートは機能しますが(「通常の」クラスとパッケージの場合)、自動インポート(および自動補完)は機能しませんjavafx.*
。手動で入力import java
してCtrl+ を押すとSpace、一致するパッケージのリストがポップアップ表示され、javafx.*
階層を確認できます。しかし、eg import javafx.stage
と入力してCtrl+ を押すと、パッケージにクラスがSpace自動的に追加さ.*;
れて表示されません。Stage
メソッド本体のどこかに入力してCtrl+ を押すとSpace、それに対する提案はありません。ただし、「」などのインポートを入力すると、import javafx.stage.Stage
コードがコンパイルされて実行されます。
自動補完と自動インポート機能を修正するための手がかり(私が言ったように、これは他のクラス、たとえば他のjava.time.LocalDateTime
多くのothresのように機能します)
javafx*
システムパッケージへのアクセスを管理するアクセスルールにより、コード補完中はクラスがブロックされます。たとえば、Eclipseバグ527353を見ると、アクセス可能なパッケージのリストを動的に計算するメカニズムがEclipse Oxygenで確定されていませんでした。その結果、静的プロファイルのみを使用できます。そのファイルは現在言及しています:
注:JavaSE-9プロファイルはまだ確定されていません。
JEP 261による動的計算にはjavafx
パッケージが含まれているため(利用可能な場合)、静的プロファイルにもパッケージをリストするか、完全にJPMSルールに依存することを優先して破棄する必要があると思います。
ただし、javafx/**
at へのアクセスを許可するアクセスルールを明示的に定義することで、問題を回避できます。
Java Build Path > Libraries > JRE System Library > Access rules
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加