如何使内部Java包在Eclipse中可访问? [英] How to make an internal Java package accessible in Eclipse?
问题描述
我有一个使用Java 11(或Java 10)在Eclipse中打开的旧版Java(8)项目。 Eclipse现在正正确地抱怨无法访问的软件包。例如。 com.apple.laf.AquaComboBoxUI
。
I have a legacy Java (8) project opened in Eclipse with Java 11 (or Java 10). Eclipse is now rightly complaining about inaccessible packages. E.g. com.apple.laf.AquaComboBoxUI
.
从命令行编译时,我可以通过添加使这些包显式访问 javac
的参数:
When compiling from command line I can make those packages accessible explicitly by adding a parameter to javac
:
-add-exports java.desktop / com。 apple.laf =全部取消命名
是否可以在Eclipse IDE中执行相同的操作?我试图在JDK库上添加可访问的规则。但这似乎没有效果。有什么想法吗?
Is there a way to do the same from inside the Eclipse IDE? I tried to add an accessible rule on the JDK library. But that seems to have no effect. Any ideas?
是的,我知道,我们应该将项目迁移为仅使用官方API。但这是很长的路要走……
And yes, I know, we should migrate the project to use only official APIs. But that's a long, long way...
推荐答案
我正在回答自己的问题,因为找到了解决方案。 / p>
I'm answering my own question, since I found a solution.
- 在Eclipse设置中,导航至: Java Build Path → Libraries → Modulepath → JRE系统库
- 展开并双击:是模块化的(修改封装)
- 切换到详细信息 选项卡
- 添加新的导出:例如 java.desktop → com.apple.laf
- In Eclipse settings navigate to: Java Build Path → Libraries → Modulepath → JRE System Library
- Expand it and double click on: Is modular (modifies encapsulation)
- Switch to Details tab
- Add a new export: E.g. java.desktop → com.apple.laf
这篇关于如何使内部Java包在Eclipse中可访问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!