8

我有一个使用 Java 11(或 Java 10)在 Eclipse 中打开的遗留 Java (8) 项目。Eclipse 现在正确地抱怨无法访问的包。例如com.apple.laf.AquaComboBoxUI

从命令行编译时,我可以通过向以下位置添加参数来显式访问这些包javac

--add-exports java.desktop/com.apple.laf=ALL-UNNAMED

有没有办法从 Eclipse IDE 内部做同样的事情?我试图在 JDK 库上添加一个可访问的规则。但这似乎没有任何效果。有任何想法吗?

是的,我知道,我们应该迁移项目以仅使用官方 API。但那是一条很长很长的路……

4

3 回答 3

6

我正在回答我自己的问题,因为我找到了解决方案。

  1. 在 Eclipse 设置中导航到:Java Build PathLibrariesModulepathJRE System Library
  2. 展开它并双击:是模块化的(修改封装)
  3. 切换到详细信息选项卡
  4. 添加新的导出:例如java.desktopcom.apple.laf
于 2018-09-21T09:03:53.847 回答
1

您需要设置问题严重性。这属于forbidden reference (access rules).Java Compiler -> Errors/Warnings

于 2018-09-15T11:52:32.210 回答
0

如此处所述您可以通过以下步骤将命令行中使用 javac 传递的参数添加到 Eclipse:

  • 点击Run->Run Configurations

  • 在出现的窗口中Main tab Browse the project以及Main class您要为其传递参数的窗口中。

  • 现在单击Arguments选项卡。
  • 在标有 的文本框中Program arguments:,键入${string_prompt}
  • 点击Apply and Close

现在,当您运行 Java 应用程序时,将出现一个提示。您可以在此处添加用空格分隔的所有参数。

于 2018-09-15T11:31:38.160 回答