美文网首页
java 写桌面程序笔记(转)

java 写桌面程序笔记(转)

作者: huangxiongbiao | 来源:发表于2018-01-29 09:06 被阅读32次

http://blog.csdn.net/xiaohan2909/article/details/46975195
http://blog.csdn.net/gaoxuaiguoyi/article/details/71977733
http://www.360doc.com/content/14/1223/16/14013244_435201983.shtml

我们最近做了一个单机版的桌面应用系统,由于特殊的原因,我们使用了java语言开发了这个系统。当可运行的jar包打好的那个时刻我们自然是非常激动的,然而问题来了~
我们的客户是十分典型的普通大众,要如何提供给他们我们的软件呢?
我们的主旨思想就是大家都用惯了windows的应用,所以我们必需使得这款应用执行起来像个exe。而且用法和普通的软件一样。
1.打包。
以eclipse为例,选择要打包的项目,右键export,然后选择Runnable JAR file(可运行的jar文件)。点击以后会需要给项目选择一个主类(java可以包含N多个main函数,所以必须指明将哪个作为最开始运行的类。)
需要的jar包都要打进去。

选择打包类型

成功的话会生成一个xxx.jar文件(通过cmd命令 javaw -jar xxx.jar 可以成功运行)
2.快捷方式调用
其实就是设法调用上面那个测试命令。但是问题又来了首先,你得有个jre客户的电脑上装没装jre是未知的,而告知客户安装jre也不太好,于是我们选择的是把jre也作为了程序的一部分。即把jre和xxx.jar放在同一个文件夹下,然后,我们选择用windows都能执行的vbs脚本来调用上面的命令,脚本内容如下,假如叫start.vbs:

Set shell=wscript.createObject("wscript.shell")
a=shell.Run("start ./jre/bin/javaw.exe -jar xxx.jar",0)

题外话:为什么不用bat?因为始终没解决弹出黑框的问题!

然后,我们的目标就是安装的时候在桌面生成这个vbs的快捷方式(快捷方式的图标也要换)!
3.打包安装
这里用到一个打包软件,我们使用的是Smart Install Maker,它可以将一个文件夹下的所有内容打成安装包,并且支持生成某个文件的快捷方式(指定图标),也支持生成卸载程序,具体的使用细节可以百度。需要打包的内容主要有:


主要的打包内容

然后让安装程序自动生成start.vbs的快捷方式在桌面,以及在开始菜单生成卸载程序等。这样整个流程就基本完成了。但是不久我们就遇到了新的问题!
4.新的问题
上面用vbs调用的脚本方法挺好,不会弹出黑框,但是java有个硬伤,调用程序之前要先打开java虚拟机,这里当然可以在程序里想办法把它作为一个服务长期开着,但是本着不占用客户资源的想法,我们没那么做,而这样导致的问题是每次开机第一次运行的时候程序打开缓慢,点击了快捷方式没反应20多秒才能打开界面于是我们的客户就不干了~=_=||
我们的解决方案并不是提高启动速度,而是为程序追加一个引导界面,就像word一样先出个小框但是这个界面是不能用java写的不然等于没写所以我们用来VisualStudio的MFC写了一个显示图片的程序,但是这个程序并不知道什么时候java界面启动成功所以我们在java程序界面初始化的时候杀死这个c++界面的进程既然都用了c++于是也不用vbs脚本了,直接在c++里调用cmd运行jar就得了,整理一下顺序是这样的:
C++程序运行打开引导界面-〉调用javaw启动jar->java虚拟机和程序成功启动-〉java程序杀死C++程序的进程-〉java界面初始化
下面附上控制用的关键代码:
C++调用cmd不弹出黑框框~:
ShellExecute(NULL,NULL,”\”“绝对路径\javaw.exe\”“,” -jar \”绝对路径\exam.jar\”“,NULL,SW_SHOWDEFAULT );
这个函数不支持相对路径,所以要使用绝对路径,而且一定要在stdafx.h里面加上#include <shlobj.h> #include <shellapi.h>不然函数没反应~
java程序杀死某个进程:Runtime.getRuntime().exec("taskkill /F /IM xxx.exe");
然后这个事到这就算完了,不知道对大家有没有用~
最后,感谢挑剔的客户,他们促进了我们技术的进步~

============
http://blog.csdn.net/gaoxuaiguoyi/article/details/71977733

首先打包成j可执行的jar文件。

image . image

接下来找到自己生成jar文件的路径就可以看到jar文件了,我的是在桌面:

image

在桌面新建一个文件夹(名字随便取,一般去项目名字)

image

上面是我取的文件夹名字,然后把资料文件都一起放入进去:

image

上面就是我所用到的文件,一个图片文件,一个是jre文件夹(后面打exe使用的)。

下载exe4j软件,安装,打开。

image

这是主界面,License直接随便百度一个就行了,点击next。

[图片上传失败...(image-dc43a6-1517190932526)]

第二部设置界面直接next。

image

然后next。

image image

设置完毕一直next。

image

上图圈住的3个全部删除,然后自己添加。

image

然后next。

image

设置完版本之后,一直next。

image

如果正常运行了,exe生成已经完毕了,接下来设置安装。

安装软件Inno Setup Compiler(直接百度搜索就能查到,下载安装就行了)。

image

然后next。

image

设置完毕,一直next。

image

然后一直next就行了,中间会遇到

image image

设置完毕,一直next。

image

点击保存之后,就开始执行脚本了。

image

执行完毕就去自己设置的文件夹找到exe程序。

image

测试一下是否正常就行了。

image

到此,java桌面应用程序打包已经完毕。

相关文章

网友评论

      本文标题:java 写桌面程序笔记(转)

      本文链接:https://www.haomeiwen.com/subject/ujntzxtx.html