eclipse中SWT程序的打包发布


前言

创建的程序可以打包发布,使其能够脱离Eclipse单独运行。对于SWT程序,需要添加swt的相关jar依赖包。


一、导出jar包

方法一:直接导出Runnable JAR file

直接导出Runnable JAR file。
在这里插入图片描述
选择导出的项目,以及要导出到的位置。

在这里插入图片描述
这种方法导出的jar包可以直接运行,操作简单。但是jar包很大,里边貌似导出了一些别的东西。

方法二:导出JAR file

导出JAR file。
在这里插入图片描述
选择要导出的项目,以及导出位置,其他默认。
在这里插入图片描述
在这里插入图片描述
到最后一页时,一定要选择程序入口函数Main class。比如book.ch2.HelloSWT,代码中是下面这种形式。
在这里插入图片描述
在这里插入图片描述
至此成功导出一个jar包。
在这里插入图片描述

二、运行jar包

选择导出Runnable JAR file的jar包,可以双击运行,或者命令行运行:
在这里插入图片描述
在这里插入图片描述
选择导出JAR file的jar包,运行时会遇到一些问题。

问题一 错误: 找不到或无法加载主类 book.ch2.HelloSWT 原因: java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Shell

在这里插入图片描述
根据第一句的提示是没有找到主类,第二句是swt的依赖没有加好。那么首先确定一下主类是否在,这个主类就是之前jar包打包时的入口函数。

打开jar包,这里我用的7z压缩工具打开。找到里边的MANIFEST.MF,查看到确实有Main-Class: book.ch2.HelloSWT。
在这里插入图片描述
那么给这个jar包添加一下swt依赖,swt的依赖包可以从eclipse的plugins文件夹里边找。注意Class-Path格式,冒号后边一定要有空格。最后将swt依赖与jar包并列放在一个文件夹里。
在这里插入图片描述
最后双击运行,或者命令行运行就ok啦!
在这里插入图片描述

问题二:修改MANIFEST.MF文件时用压缩工具解压之后再压回去,运行报错

在这里插入图片描述
改后缀并不是个万全的方法,这种时候要用jar命令行来解压缩。

解压:

jar -xvf helloSWT.jar

在这里插入图片描述
压缩:

jar -cvfM helloSWT.jar META-INF/MANIFEST.MF book/ch2/*.*

其中META-INF/MANIFEST.MF是MANIFEST.MF文件在当前文件夹test jar包的位置,book/ch2/. 是HelloSWT.class文件的位置,*.*代表是打包ch2文件夹里全部内容。
在这里插入图片描述
之后就可以得到可执行的jar包啦!
在这里插入图片描述
要注意的是,压缩jar包千万不要用下边这个命令啊!!
在这里插入图片描述
这个命令看似压缩是没有问题,但一定要注意看这个MANIFEST.MF,我们刚刚写好的什么Main-Class,Class-Path都消失了啊!!没有Main-Class就意味着又会出现问题一里边无法找到主类的错误了啊,白改了啊,所以一定不要用这个压缩命令。
在这里插入图片描述
强烈建议压缩完jar包以后看一下,确认目录是你想要的,MANIFEST.MF配置也对,避免做白工。
在这里插入图片描述

总结

怕麻烦就直接导出Runnable JAR file,也能用;
导出JAR file的话,注意MANIFEST.MF的配置,使用jar命令解压缩后一定要看一下是不是自己想要的格式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SWT是指Standard Widget Toolkit,是一种用于Java平台的图形用户界面工具包。它提供了一套丰富的GUI组件,可以用于开发跨平台的桌面应用程序。在Eclipse使用SWT需要确保在plugins文件夹存在SWTJAR文件。在Windows系统,可以找到类似于org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar的文件。\[1\] 如果你想在Eclipse使用WindowBuilder来设计GUI界面,你需要添加WindowBuilder插件。你可以通过点击Eclipse菜单的"Help",然后选择"Install New Software"来添加插件。在弹出的对话框,点击"Add"按钮,然后在"Name"输入"WindowBuilder",在"Location"输入"http://download.eclipse.org/windowbuilder/1.11.0"。\[2\] 当你发布使用SWT开发的应用程序时,需要一起发布SWT库文件。你可以在Eclipse的下载页面找到单独的SWT库文件。在页面的底部,你可以找到各种操作系统下的版本。目前提供的版本包括Windows、WindowsCE、Linux、Solaris、QNX、AIX、HP-UX和MacOS的运行库。\[3\] #### 引用[.reference_title] - *1* *3* [Eclipse插件开发之基础篇(6) SWT简介](https://blog.csdn.net/weixin_33929309/article/details/93110045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [初学者之【eclipse搭载SWT环境】](https://blog.csdn.net/m0_74033500/article/details/130183407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值