2019年1月

最近学习使用 eclipse rcp 来做一些插件。 首先下载安装 eclipse-rcp,然后安装 swt emerge -av swt

安装完成以后, 在 /usr/portage/distfiles/ 中找到 swt* 的压缩包,然后解压到 /usr/local/src 中去。

当然也可以在 eclipse 官网上面下载最新的 源码 ,网址类似这样 https://archive.eclipse.org/eclipse/downloads/drops4/R-4.9-201809060745/

打开 eclipse-rcp,新建项目后,项目属性中 java build path --> Libraries 中添加 /usr/local/src/swt 里面的 swt.jar 包。 然后在项目文件的 swt.jar 包上右键属性,java source attachment 中选择 源文件目录 /usr/local/src/swt 中的 swt.zip 包。

调试无问题后,打包后, 使用 java -jar 来运行 jar 包, 提示 Error: Could not find or load main class HelloSWT。 使用 jar xvf helloSWT.jar 来解压缩 jar 包, 在METE-INF/MANIFEST.MF 文件中添加 Class-Path:swt.jar

再次运行,提示 no main manifest attribute, in helloSWT.jar

发现这样不行,重新导出的时候,发现还有一个选项是 runable jar file export, 选择这个选项,然后选择导出路径,下面三个依赖包的选项意思是: (1)Extract required libraries into generated JAR。

把所有的import JAR都拆开来,包含在JAR的各个目录中,ex. net/org/xxx.class

(2)Package required libraries into generated JAR。

把所有的import JAR都包在JAR的根目录下

(3)Copy required libraries into a sub-folder next to the generated JAR。

把所有import JAR放在JAR外面独立的一个文件夹

正常我选择第二种, package打包,生成的 jar包,使用 java -jar,就可以正常运行了。