在Java15模块化设置中使用Eclipse中的SWT
本文介绍了在Java15模块化设置中使用Eclipse中的SWT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只是尝试使用以下命令运行基本的Hello World(项目Trial0
)应用程序:
- Eclipse版本:2020-12(4.18.0)
- 使用SWT 4.18(Linux、GTK)
- 将Java编译器设置为15
按照Developing SWT applications using Eclipse中的描述(有点古老,是关于JDK 1.4和SWT 3.1),我已经将SWT项目导入到Eclipse中:
- 转到https://download.eclipse.org/eclipse/downloads/index.html#Stable_Builds
- 单击";4.18";到达https://download.eclipse.org/eclipse/downloads/drops4/R-4.18-202012021800/
- 向下滚动,直到到达";SWT二进制文件和源代码,然后下载压缩文件(&QOT;SWT BINARY&SOURCE&QOOT;) swt-4.18-gtk-linux-x86_64.zip。
- 压缩包包含‘swt.jar’(包含‘.so’文件)。启动Eclipse的";File>;Import>;General&>Existing Projects to Workspace";,然后选择上面的zip作为";Archive File";
我立即在使用导入的SWT项目的项目中遇到模块化/Jigsaw问题。编译器显然不允许查看未模块化的SWT类:
&q;无法访问org.eclipse.swt.widgets包
在此代码中:
这里是项目:
注意导入项目上的module-info.java
文件。它包含:
swt.jar
确实不播发模块:
module-info.java
个文件添加到SWT JAR中?有没有另一种将SWT罐子拉到模块化区域的&规范&方法?
推荐答案
根据输出describing the module from the jar文件可以看到。
在module-info.java
文件中,您需要添加以下指令:
这将为您提供对模块swt
(自动模块名称)声明的包org.eclipse.swt.widgets
的访问权限
其描述本身。
导入项目的文件module-info.java
现在包含:
Eclipse将此警告附加到行requires swt;
:
自动模块"swt"的名称不稳定,它派生自 模块的文件名。
没关系。
以上可能仍不起作用。在这种情况下,请验证以下内容:
项目org.eclipse.swt
位于导入项目的Modulepath,而不是Classpath:
导入的模块上需要有访问规则。以下访问规则似乎有效:
请注意,在";模块依赖项";中没有为导入项目定义任何特定内容:
这篇关于在Java15模块化设置中使用Eclipse中的SWT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!