web-dev-qa-db-ja.com

内部JavaパッケージをEclipseでアクセス可能にする方法は?

EclipseでJava 11(またはJava 10)で開いたレガシーJava(8)プロジェクトがあります。Eclipseはアクセスできないパッケージについて正しく文句を言うようになりました。例:com.Apple.laf.AquaComboBoxUI

コマンドラインからコンパイルする場合、javacにパラメーターを追加することで、これらのパッケージに明示的にアクセスできるようにすることができます。

--add-exports Java.desktop/com.Apple.laf=ALL-UNNAMED

Eclipse IDE内から同じことを行う方法はありますか? JDKライブラリにアクセシブルなルールを追加しようとしました。しかし、それは効果がないようです。何か案は?

はい、私は知っています、公式APIのみを使用するようにプロジェクトを移行する必要があります。しかし、それは長い道のりです...

6
Michael

解決策を見つけたので、私は自分の質問に答えています。

  1. Eclipse設定で、次の場所に移動します。JavaビルドパスライブラリモジュールパスJREシステムライブラリ
  2. それを展開し、ダブルクリックします:モジュール式(カプセル化を変更)
  3. 詳細タブに切り替えます
  4. 新しいエクスポートを追加します:例: Java.desktopcom.Apple.laf
3
Michael

問題の重大度を設定する必要があります。これはforbidden reference (access rules)の下にJava Compiler -> Errors/Warnings

前述のように ここ コマンドラインでjavacを使用して渡されたパラメーターを、次の手順でEclipseに追加できます。

  • Run->Run Configurationsをクリックします。

  • Main tabBrowse the projectおよび引数を渡したいMain classの下に表示されたウィンドウ。

  • 次に、Argumentsタブをクリックします。
  • Program arguments:というラベルの付いたテキストボックスに、${string_Prompt}と入力します
  • Apply and Closeをクリックします。

これで、Javaアプリケーションを実行すると、プロンプトが表示されます。ここで、スペースで区切ってすべての引数を追加できます。

0
Yug Singh