如何使内部 Java 包在 Eclipse 中可访问?
How to make an internal Java package accessible in 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。但那是很长很长的路...
如前所述here您可以通过以下步骤将命令行中使用 javac 传递的参数添加到 Eclipse:
单击 Run->Run Configurations
。
在Main tab
Browse the project
下出现的window和您要为其传递参数的Main class
。
- 现在单击
Arguments
选项卡。
- 在标有
Program arguments:
的文本框中,键入 ${string_prompt}
- 单击
Apply and Close
。
现在,当您 运行 您的 Java 应用程序时,会出现一个提示。您可以在此处添加用 space 分隔的所有参数。
您需要设置问题严重性。这属于 forbidden reference (access rules)
下的 Java Compiler -> Errors/Warnings
。
我正在回答我自己的问题,因为我找到了解决方案。
- 在 Eclipse 设置中导航至:Java 构建路径 → 库 → 模块路径 → JRE 系统库
- 展开并双击:是模块化的(修改封装)
- 切换到详细信息选项卡
- 添加新导出:例如java.desktop→com.apple.laf
我在 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。但那是很长很长的路...
如前所述here您可以通过以下步骤将命令行中使用 javac 传递的参数添加到 Eclipse:
单击
Run->Run Configurations
。在
Main tab
Browse the project
下出现的window和您要为其传递参数的Main class
。- 现在单击
Arguments
选项卡。 - 在标有
Program arguments:
的文本框中,键入${string_prompt}
- 单击
Apply and Close
。
现在,当您 运行 您的 Java 应用程序时,会出现一个提示。您可以在此处添加用 space 分隔的所有参数。
您需要设置问题严重性。这属于 forbidden reference (access rules)
下的 Java Compiler -> Errors/Warnings
。
我正在回答我自己的问题,因为我找到了解决方案。
- 在 Eclipse 设置中导航至:Java 构建路径 → 库 → 模块路径 → JRE 系统库
- 展开并双击:是模块化的(修改封装)
- 切换到详细信息选项卡
- 添加新导出:例如java.desktop→com.apple.laf