大上周刚刚了结一个桌面软件项目。这个项目需要用到
SNMP协议,我刚开始尝试使用不熟的C#,但始终无法ping通目标主机,反而是Java一下就通了,看来还是熟悉的东西比较稳妥。但是用Java的话,大家都懂的~~~(宝宝心里苦啊)
Java 搭建桌面程序不是不可以,而是需要面临很多棘手的问题。软件编写完成后,本来以为大功告成,奈何还要解决编译、打包、如何运行在别人的机器上等等诸如此类的问题,麻烦的要命。这真的要感谢很多前辈的博文,给了我很多启发,帮助我渡过难关。现将自己所经历的一切总结成文,希望可以帮助到各位同仁,大家一起愉快的玩耍岂不美哉(嘿嘿嘿嘿~~~)
文章涉及软件与技术
- 打包工具:exe4j 6.0【提取码:9vpx】、Inno Setup 5【提取码:64ss】
- 项目技术选型:
JDK1.8(32/64 涉及到使用此软件电脑的版本),Druid,Commons3,Commons-Email,Lombok,Dbutils- 数据库:
Access(驱动:ucanaccess)- 其它:
软件图标(.ico)
工程说明
- 首先对工程目录做下说明。
src目录下,二十几个包,就不打开了。主要说下,为什么有两个resources目录。利用EXE4j将项目打包成.exe后,配置文件会被一起打包,为了实现配置独立,又将resources目录独立出一份。这样做之后,resources文件夹要和.exe可执行程序处于同一文件目录下,程序才能加载到配置文件。当然,也可以在代码中自定义配置文件路径,但那样做之后,可能会在路径问题上耗费较多时间(例如我,log4j日志生成目录弄了半天) - 当前这个工程,我是将
log4j配置文件,加入到maven下的resources里面的,但在最后生成时,我是将这个文件,放到外层的resources里,和其它配置文件处于同一目录。这样的原因是,如果在Eclipse里面,直接将log4j配置文件放到外层的resources里面,会出现加载不到该配置文件的情况(我想把这几个配置文件独立出来,所以没有采用默认路径加载,而是自加载的方式),所以在Eclipse里面测试时,log4j配置文件就放在maven管理的resouces下了。只要log4j配置文件可以正常加载,生成日志的文件路径,就不用操心了。 images后期没有改动的需求,一并加入到resources管理

准备工作
- Java程序是运行在
虚拟机上的,所以别人的电脑要想运行Java程序必须要有Java环境,即jre。而我的程序要运行在32位电脑上,所以就需要准备32位的jre,64位同理; - exe4j软件;
- 桌面程序需要软件图标,准备一个
ico图片,并不是必要的。
导出程序
- 程序右键 --> Export…

- 选择“Runnable JAR file(可执行JAR包)”–> next

- 配置如下:

-
“Library handing”:我选择的第一项
-
- Extract required libraries into generated JAR:把所有的import JAR都拆开来,包含在JAR的各个目录中,ex. net/org/xxx.class
-
- Package required libraries into generated JAR:把所有的import JAR都包在JAR的根目录下
-
- Copy required libraries into a sub-folder next to the generated JAR:把所有import JAR放在JAR


859

被折叠的 条评论
为什么被折叠?



