下载

0下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 打包并打成exe文件

打包并打成exe文件.doc

打包并打成exe文件

刻意地执着
2017-11-26 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《打包并打成exe文件doc》,可适用于职业岗位领域

打包并打成exe文件文字解说java项目打包:总体思路是先打成jar再把jar打成exe。主要看和里的内容就可以了。(将项目打成jar:要将项目打包成jar文件方法很多可以用Eclipse自带的打包工具Ant打包也可以用Eclipse的Export生成jar。经过尝试后我不推荐用Ant打包因为要自己编写xml脚本语言还要增加一些外部的jar所以我打了好几次都没打成。在这里介绍两种方法生成jar第一种是用Eclpise的Export功能。在要打包的项目上击右键选择Export在窗口中选择Java里的JARfile。Next后的窗口中已经自动选好了要打包的项目用户可以点击加号查看项目里被打包的内容。在下面的JARfile里设置你打包生成jar文件的输出目录下一步在出现的窗口中选择Useexistingmanifestfromworkspace在下面的Mainclass后面直接点Browse它会自动列出你项目中有主函数main的类。选择主类后点Finish即可生成jar文件。在此说明一下这种打包方法不能把项目中的外部的jar包打进来因该是也要编写一些脚本语言没往深研究。所以生成后的jar有些是不能执行的。第二种方法是利用Eclipse的一个第三方插件fatjar生成jar文件也是本人觉得最简单最方便的一种生成方式。先从网上下载些插件解压后是一个plugins的文件夹里面只有一个文件夹我的是“netsffjepfatjar”将它copy到Eclipserplugins文件夹下此插件就安装成功了重启Eclipse在项目上右击就会看到多出一个“BuildFatJar”在前面有个绿色的“”号这时你就可以用此插件打包你的项目了。进去后第一个界面JarName里增入要生成的jar文件名我的是“CAMPfatjar”。在MainClass后点Browse像Export一样它也会列出你项目中的主类选择后其它默认即可Next后会列出你要打包的所有内容这个插件的优势就是可以将你项目中的外部jar也打进来有三个先项其中ExportANT是生成buildxml脚本文件方便用户以后修改脚本其它两个按钮没用。在这里什么都不点直接点,inish就可以生成jar文件。将jar打成exe文件:虽然此时的jar文件已经可以执行了。生成exe的文件我也是用两种方法实ewiz和exej它们的不同会在我下面的介绍中体现现的用到的打包工具是j出来。首先是jewiz这个软件是绿色的不用安装解压后可以直接运行但这个软件生成的exe文件不是跨平台的。运行此程序首先就是输入要打包的jar文件我们浏览JAR选择我们之前用fatjar生成的“CAMPfatjar”项目文件(详见)下面那个选项是提示用户最低要求的JRE版本一般选。下一步因为我们的寝室管理系统是图形界面所以在这里选“,indows窗口程序”下一步它也是自动生成要执行的主类你只要选择就可以。下面的选框可以选择你启动程序显示的图片。下一步后这个窗可按个人喜好选择。下一步如果你的程序还有什么依赖的外部jar文件可以从这里加上但因为之前的fatjar以经将我们项目所用的那三个连数据库的外部类打进CAMPfatjar包里了所以这里不用再添加。如果你之前是用,xport打的jar包那么这里就需要再把那个三个数据库的包加进来了(详见)。下一步是添入要生成的exe文件名再选一个程序图标就可以了下一步后生成exe文件点完成。双击生成的exe文件就能看到运行效果了这种exe文件还没有脱离JDK环境还不能跨平台使用只能用于小组成员测试使用。下面进入最关键的如何打包跨平台的exe文件。用到的软件是exej,我用的是V版的此软件需要破解。安装后运行左窗窗口标有十步其实打包过程也非常简单。第一步完全略过直接点Next第二步我们选择“JARinEXEmode”就是选择我们已经有制作好的jar文件。第步上面是项目名称可随便填写下面一个写出你想要将打包后的exe文件输出的目录我的是“桌面project”。第步由于我的演示程序是图形的所以选第一个如果你的程序是控制台的则选择第二个Executablename写你将要生成的exe文件的名字IconFile可以选择生成文件的图标。第步先别管上面的先在下面单击绿色的“”号在弹出的窗口中点Archive然后找到起初已经做好的CAMPfatjar(详见)文件"OK"后返回在下面的ClassPath里就出现jar文件路径后再在上面MainClass栏内点击找到main所在的类。第步你系统的JRE版本一般是填个下面填在这里单击advancedoptions选择searchsequence。选这个就是因为我们要把JDK环境也打包进来好让程序K下的JRE目录copy到你exe文件的输出能跨平台使用。首先要从你系统的JD目录下“桌面projectJRE”然后回到exej中在弹出窗口删除列表中的所有项。我的是三项一个注册表的一个JAVA环境变量的一个JDK环境变量的都不要。然后单击绿“”选择directory并选择JRE的根目录我的是“桌JRE”就是copy后的目录选完后exej弹出窗口中的Directory面project里会显示“JRE”。点OK关闭该窗口返回exej的主窗口你就可以看到刚加的路径。再从主窗口左侧窗口中单击advancedoptions并选择preferredVM在弹出的窗口中选择clienthostspotVM单击next按钮继续。、步是一些个性设置默认即可。第步编译完后第步你点那个“ClickHeretoStarttheApplication”按钮就可以看到程序运行效果了然后再点”Seaveas”保存一个exej生成的一个文件随便存哪里都行和我们的exe程序无关。全部制作过程就完工了。另一篇文章:第一步:创建项目打开Eclipse新建一个Java项目名叫TestSWT手动追加一些必要的目录后结构如下:bin这个是class编译输出路径dll此目录存放SWT解压出来的那些dll文件(简单应用的话swtwin****dll这一个文件就够了)lib此目录用来存放swt等开发需要的jar文件src此目录为源代码目录jarjar文件的输出路径METAINF存放可执行JAR需要的MF文件这里我选用的swt包是Eclipseplugins下面的swt包一般其名称类似于orgeclipseswtwinwinx****jar其中的****是版本号各人的可能不太一样。上面说明目录的时候提到的dll目录里面存放的dll文件可以直接从orgeclipseswtwinwinx****jar这个包里解压得到简单应用就只把swtwin****dll复制过去或者都复制过去(一共能解压出来个dll)也行其余个都比较小。第二步:编写代码然后编写一个测试用的窗体:packagecnindoingtestimportorgeclipseswtwidgetsDisplayimportorgeclipseswtwidgetsShellpublicclassMainForm{publicstaticvoidmain(Stringargs){Displaydisplay=newDisplay()Shellshell=newShell(display)shellsetText("Test!!!")shellsetVisible(true)while(!shellisDisposed()){if(!displayreadAndDispatch()){displaysleep()}}displaydispose()}}在这里顺便说一下其实本不用把swt*******dll复制到系统盘符的windowssystem下那个目录内容的多少影响系统速度(个人感觉不一定准确)所以我们采用另外一种方式。在eclipse里让上面的MainForm编辑窗获得焦点然后点击右键选择RunAs>OpenRundialog选择右面(X)=Arguments标签在下面的VMarguments里追加Djavalibrarypath={$workspace}TestSWTdll这里的{$workspace}是你的eclipse的workspace的目录不要直接把这个复制过去才好呵呵。然后点击Run就可以了。第三步:创建配置文件在METAINF目录下新建一个名为MANIFESTMF的文本文件这个文件小心点儿格式要求的很严格一个空格都不能错如果ClassPath项有很多jar包请写在一行相邻的两个jar包之间用一个半角空格来分割。本例内容为:ManifestVersion:(空格)MainClass:(空格)cnindoingtestMainFormClassPath:(空格)liborgeclipseswtwinwinxvijar第四步:创建批处理文件在项目的根目录下新建一个jarbat文件修改其内容为:echooffcdjarrmdirlibsqdeltestjarfqcdbinjartestjarMETAINFMANIFESTMFcnjarcvfmcdjarlibmkdircopylib**libcopydll**lib可以了编译好源码后在资源管理器里找到本项目的目录双击执行jarbat即可。在jar目录下会生成一个testjar和一个lib目录双击testjar试试看,其他说明jar文件通常有两种启动方式一种是双击运行一种是DOS提示符下运行先予以分别说明。双击运行这种运行方式是最直接最简单也是大家特别习惯的运行方式最终成品发布估计多数都是这样运行但是这种方式不利于开发期的测试和调试因为双击模式默认是界面操作模式所以一些本来打在控制台的错误信息我们就无法获得万一程序真的在某个地方有问题从直观上是根本看不到任何反映的。另一种情况也是非常令人头疼的情况就是明明在Eclipse跑的好好的作成Jar文件双击就不好用然后解压回去或者回到Eclipse发现还好用这样的情况初学者比较容易常见原因多数情况是配置的问题那么为了迅速的找到问题的原因就要采用下面的运行方式DOS提示符运行。DOS提示符下运行在DOS提示符下进入Jar包所在目录然后执行javajar{$yourfilename}jar。正如上面所说在DOS提示符下运行Jar文件默认方式是控制台方式那么任何我们以前可能在Eclipse的Console里看到的log信息现在都能看得到假如真的出现上面提到的第二种情况那么一眼就可以看出是否缺少dll文件还是其他问题了。aaa常见错误Exceptioninthread"main"javalangUnsatisfiedLinkError:noswtwininjavalibrarypath这个错误最初容易出现在Eclipse开发过程通常是dll文件的存放位置不对或者可以说配置参数没有写好解决办法请先参考上面提到的加运行参数方法如果还是不行那么先把swtwindll放到windowssystem下吧(实在没办法再放进去总往system里添加东西不是好事儿)。如果还是不行这是我刚才想到的那么要注意一下是不是版本不对例如提示说swtwin找不到发现dll文件是有但是后面却不是这个现象没试过猜测有可能发生。InvalidorcorruptjarfiletestjarMANIFESTMF文件格式不对很有可能多了或少了空格记住每个冒号后面有且只有一个半角空格。Exceptioninthread"main"javalangNoClassDefFoundError:cnindoingtestMainFormMainClass的内容写错了例如本例中明明是MainForm这里却写成了MainForm(当然只是举例子实际上这样的事情是不会发生的)。其他的错误情况我还没想到如果你参考我的流程来做发现有其他问题请跟贴告诉我共同学习。“画蛇添足”按照上面的流程我们做好了jar文件可以通过双击执行了但是有一点可能不是令人十分满意那就是发布的时候还要把lib包一起带着。那么能不能作成只有一个jar文件就够了呢,经过测试可行不过不敢说自己的方法是最简洁的现说明如下:不知道上面解压orgeclipseswtwinwinx****jar时的东西还在不不在就再解压一次。里面有个org目录个dll和其他几个说明文件我们要做的是用解压缩软件(例如zwinRarwinZip等等)打开testjar注意是打开即可不用解压。还是参考本例中的testjar请只保留cn目录和METAINF目录其他文件一概全部删除然后用鼠标点选swt解压包里的org目录和个dll文件到当前testjar里软件会问你是否加入确认。然后进入testjar里的METAINF文件夹先把MANIFESTMF拖拽出来用文本编辑器打开删掉classpath那行保存后再拖拽回去OK一个崭新的单文件可执行jar文件就做好了。这一套也不太麻烦不过如果以后想省事儿的话建议把这个但文件的testjar留着(我这里显示‎‎M)以后做别的SWT项目想作成单个儿的可执行JAR文件时只要把这里的cn目录删掉换成你自己的开发目录再把MANIFESTMF弄出来修改一下mainClass就可以了。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/9

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利