java 写桌面程序笔记(转)

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桌面应用程序打包已经完毕。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容