第一篇:java程序转exe过程总结
首先要下载三个东西。Fat Jar插件、exe4j 软件、Inno Setup软件
下载地址:sourceforge.net/projects/fjep/files/ 点击“Download net.sf.fjep.fatjar_0.0.31.zip(246.3 kB)”即可下载。(1)Fat Jar : Eclipse可以安装一个叫Fat Jar的插件,用这个插件打包非常方便,可以直接将JAVA项目打包成可执行JAR包。
1.下载后的文件如下图所示。
2.打开下载会的ZIP包,将里面的Jar解压到Eclipse安装路径下的plugins文件夹中。
3.如果Eclipse已经启动需要重启一下,没有启动直接打开Eclipse即可。
4.打开Eclipse之后,右击要打开的工程,出现一个“Build Fat Jar”,点击它。
5.如果没有出现它,可以选择“Export”,从弹出的对话框中选择“other”-->“Fat Jar Exporter”,点击Next,选择要打包的项目,再点击Next。
6.出现如下图这样的窗口。选中Use extern jar-name,这样能将生成的Jar保存到工程外的路径。
7.选择Main-Class,点击Browse找到可运行的主类。
8.选择one-jar,点击Accept。
9.点击Next进入下一步,出现下面的界面,直接点击Finish即可。
打包完成,点击OK即可。去刚刚指定的位置找到Jar,双击即可运行。(com.simontuffs.onejar.Boot 就是你的入口程序,下面转成exe时会用到)
(2)exe4j 软件+ Inno Setup软件
对于作Java桌面应用来说,比较烦人的就是安装部署问题,客户端是否安装有jre、jre版本问 题、jre去哪下载、如何用jre启动你的Java应用?不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。
最好的方式莫过于带着JRE,让用户轻松点击就能运行。带着JRE运行,JRE的大小应该是最让 人头疼的,我默认安装的jre6大小达到80M,而程序只有200-300k左右,感觉非常不合理,分发与 网络传输过程也会大受影响!因此针对自己程序精简jre非常必要,关于jre的精简问题请参考其他 文章,本文在此不做说明。
针对windows平台,让用户一键式安装,双击使用,使用工具exe4j+InnoSetup,这两个工具都 可以在网上找到,下面通过一个实例进行说明。
第一步:将自己的java程序打包成“可执行的jar包”,可以采用eclipse等IDE工具打包。下面 以eclipse为例进行说明:
上面截图应该注意的是:第一步是要求你选择你的java程序的引导类,下面是输出路径,类文 件的处理上我们选择第二种,即将该java程序所需的jar包一起打包进来,最后点击finish。完成后 最好双击一下导出的可执行jar包,确保可正确运行。
第二步:准备打包文件夹。
1.在任意路径下新建文件夹,文件夹的命名可以使用项目的名字,如此例的项目名takephoto。将在第一步中生成的jar包复制进来。
2.将精简以后的jre文件包复制进来,如果尚不掌握精简方法,可以暂时采用安装的庞大jre,如
下图:
将上图的jre复制进去即可。
3.在takephoto文件夹下新建lib文件夹,将项目所需的jar包,如数据库驱动等复制进去。4.可以在准备一个ico文件夹,存放一个或几个ico图标或图片。经以上几步后,文件结构应该是:
第三步:使用exe4j工具生成exe文件:
直接下一步,这一步
要求选择类型,我们选择第一个,这样可以保证程序仍具有跨平台的特性。如果选择第二个,可以 把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。
上面是设置你的程序的短文件名,源文件夹路径(如我的:E:takephoto),以及要生成的exe文件的存 放目录,exe存放目录必须指定到源文件夹下,这里我把它指定为E:takephoto的根目录下。
上面是给我们即将生成的exe文件起一个名字,如我的“takephoto”,还可以给它指定一个ico类型的 图标,其它按默认就可以了,在指定ico图标路径的时候建议采用绝对路径,因为在测试的时候发现
如果采用相对路径在生成exe文件的时候提示出错,且经测试采用绝对路径也能保证程序的准确性。
上面是要求把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径,注意,要首先添加类路径再指定启动类,类路径包含两部分,一是我们在第一步生成的可执行jar包,二是程序所需的其他jar包路径,即lib文件夹路径。如图:
上面是把生成的可执行jar包路径添加进去了,下面添加lib文件夹路径。注意,全部采用相对路径 如.takephoto.jar,.lib。
在添加lib文件夹
路径的时候选择scandirectory。
上面是
把lib文件夹路径添加进去了。下面就可以指定启动类了。
先选择我们的程序所需要的jre版本,然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre,所以必须把我们自带的jre指定为首选的运行环境,如图选择:接下来
Searchsequence
默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以 这里我把默认的选项移除了,然后添加我们自己的jre所在的目录路径,点+号开始:
均采用默认即可:
下面的
上面的
可以添加一个启动画面,如指定一个gif图片。
好了exe
文件已经生成完毕了。点击exit退出即可,退出时提示配置已经改变是否保存,可以保存,保存后 为takephoto.exe4j,下次可以直接双击这个文件进行编辑我们上面的配置。经过以上操作,文件夹结构变为:
双击一下takephoto.exe也可以执行了。
第三步:利用InnoSetup工具进行压缩打包,做成安装程序。
可以采用家脚本向导,也可以将上面画面关掉,直接“文件-新建”即可。
上面是设置一些信息,比如程序名称,版本信息,发布者,应用程序官方网站。
这一步点击浏览选择主执行文件即我们第二步生成的exe执行文件:
下一步是添加文件夹:
点击是即可 菜单文件夹名称,根据需求进行勾选。下面的一直点击下一步即可
上面是指定开始
上面可以自定义输出文件夹,生成的安装包文件名默认是setup,自定义安装程序图标,安装密码。
本名称。点击保存之后立即进行如下编译:
指定脚
编译完成之后,文件的默认输出位置在源文件夹下的程序自动创建output文件夹中。最终文件夹的结构是:
以上便是我们需要的安装程序。值此全部结束,如有错误敬请指正!
2011年3月25日星期五22:11:25
注意:
(1)生成的exe程序如果发生如下错误:
可用下面的方法解决:
exe4j是个很好的打包利器,官方下载地址:http://www.xiexiebang.com/download/exe4j/files.php
如果你不注册,打包好的软件每次启动都会报:this executable was created with an evaluation version of exe4j,特烦人,所以最好下载exe4j的破解版,但是有注册码,官方软件毕竟比破解版好用,下面的注册码经测试,均可以使用.用户名和公司名可随便填 A-XVK258563F-1p4lv7mg7sav
A-XVK209982F-1y0i3h4ywx2h1
A-XVK267351F-dpurrhnyarva
A-XVK204432F-1kkoilo1jy2h3r
A-XVK246130F-1l7msieqiwqnq A-XVK249554F-pllh351kcke50
A-XVK238729F-25yn13iea25i
A-XVK222711F-134h5ta8yxbm0
A-XVK275016F-15wjjcbn4tpj
A-XVK275016F-15wjjcbn4tpj
(2)你的 Java 应用程序的运行类(这里写你 java 程序的入口类,为了避免错误,可以 用好压打开你的 jar 文件,找到 META-INF 中的 MANIFEST.MF 件,并用记事本打 开,Main-Class: com.simontuffs.onejar.Boot 中的 com.simontuffs.onejar.Boot 就是你 的入口程序,如果直接用 java 程序的主类可以会出错,在用 fatjar 插件打包后,我们 的 编 写 的 程 序 被 两 次 打 包,以 至 于 入 口 类 发 生 了 变 化,上 面 的 com.simontuffs.onejar.Boot 就是用 fatjar 插件打包时自动生成的入口类)
第二篇:Java EE实验报告
学 生 实 验 报 告
课程名称:
学生学号:
所属院部:
(理工类)
J2EE程序设计 专业班级:
学生姓名:
信息技术学院 指导教师: 13 ——20 14 学年 第 2 学期
金陵科技学院教务处制 实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:Java编程基础 实验学时: 4 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序的方法;
(2)熟练掌握Java常用工具类的使用;(3)熟练掌握Java集合框架编程;
(4)调试程序要记录调试过程中出现的问题及解决办法;
(5)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(6)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。
三、实验内容及过程
(1)设计一个类Student,类的属性有:姓名,学号,出生日期,性别,所在系等。并生成学生类对象数组,按照学生的姓名将学生排序输出。(注意:使用String类的compareTo方法)
(2)使用日历类等相关方法,按截图做出一个日历。参照书本示例,研究其中代码,回顾与复习利用Java Swing编程。
(3)将本学期开设的课程名称加入到HashSet中,并使用迭代器遍历输出。
(4)完成以下实验:(1)定义一个学生类:属性有学号、姓名、专业、高数成绩、外语成绩、Java课程成绩。(2)在测试类中生成多个学生类的对象,放入TreeSet中,要求按照三门课总成绩从高到低排序,总成绩相等按学号排序输出排序结果。(注意:实现Comparator接口的compare(Object obj1,Object obj2)函数)
(5)以List接口对象(ArrayList)为基础建立一个通讯录,要求通讯录中必须含有编号、姓名,性别、电话、地址、Email等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主程序测试。
要求:
(1)编译调试程序之前应配置好环境变量;
(2)要掌握用JDK命令行和Eclipse集成开发环境调试Java程序;(3)熟练掌握Java常用工具类和集合框架的使用;
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验一程序清单续1)
(实验一程序清单续2)
四、实验结果与分析
实验项目名称: JSP编程基础 实验学时: 6 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握JDOM对XML编程的使用;(2)熟练掌握HTML编程基础;
(3)熟练掌握JSP环境配置以及编程基础;(4)熟练掌握JavaBean编程;
(5)调试程序要记录调试过程中出现的问题及解决办法;
(6)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(7)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7,Tomcat6.0和Eclipse软件。
三、实验内容及过程
(1)通过JDOM技术实现对以下XML文件的操作:
显示整个XML文件内容
显示第二个客户节点内容
增加一个节点:如
<客户 性别=“男”> <姓名>张三姓名>
<电子邮件>Zhangsan@magicactor.com电子邮件> 客户>
删除客户名称为张三的节点
修改客户名称为张三的节点的电子邮件为Zhangsan@126.com
(2)使用HTML与JavaScript完成一个简单的四则运算,界面功能如下:
(3)使用JSP与JavaBean实现一个简易计算器.注意:仿照(2)HTML代码编写网页,使用request对象接收值,在JavaBean中计算,JSP页面调用该JavaBean,实现数字计算。
(4)使用application内置对象实现一个简易的网站计数器,界面如教材P288图15.7所示。
(5)使用session内置对象实现一个简易的购物车功能。利用session保存用户选购的商品信息,本购物车程序至少包含两个页面:显示商品页面showbooks.jsp;显示购物车页面showcarts.jsp。
要求:
(1)学会配置JSP编程环境;
(2)学会使用Eclipse的各种调试方法;(3)熟练掌握JSP的编程基础。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验二程序清单续1)
(实验二程序清单续2)
四、实验结果与分析
实验项目名称: Servlet与JSP综合编程 实验学时: 6 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握JDBC数据库编程的使用;(2)熟练掌握Servlet编程基础;(3)熟练掌握JSP综合编程;
(4)调试程序要记录调试过程中出现的问题及解决办法;
(5)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(6)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7,MySQL,Tomcat6和Eclipse软件。
三、实验内容及过程
(1)在数据库中建立一个表,表名为学生,其结构为:学号、姓名、性别、年龄、成绩。编程实现以下功能:
编写方法向学生表中增加记录;
编写方法将每条记录按成绩由大到小的顺序显示到界面; 编写方法删除成绩不及格的学生记录。
(2)使用JSP与JavaBean实现用户登录功能,要求实现以下功能:
创建数据库MyDB,创建一个表Users(用户名、密码),用户日志表userLog; 创建一个JavaBean;UserDao主要包含两个函数:验证函数、日志函数; 创建登录页面JSP页面(login.jsp),构建表单Form,使用Servlet实现验证码功能。当用户输入提交后,调用JavaBean验证其合法性,如果验证不通过导向登录页面,验证通过导向欢迎页面。不管是否通过验证都应该向userLog表中添加成功登录或失败登录信息。; 创建成功页面JSP页面(success.jsp)。
(3)使用JSP、Servlet以及JavaBean实现MVC架构计算圆面积,要求实现以下功能:
编写JSP页面View; 编写JavaBean实现业务逻辑;
编写一个Servlet,从JSP界面接收用户输入的半径,调用JavaBean实现圆面积计算; 在web.xml文件中配置Servlet的Mapping URL。
(4)参考书本上关于Filter的描述,编写一个用于用户认证的过滤器。如果管理员即后台所有页面都有“/admin”,如管理员登陆页面http://localhost:8088/admin/login.jsp,要求拦截/admin的页面进行认证(登陆界面除外),如果用户没有认证则跳转到登陆页面。要求:
(1)学会配置JDBC编程环境;(2)学会使用Eclipse的各种调试方法;
(3)熟练掌握JSP、JavaBean与Servlet综合编程的使用。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验三程序清单续1)
(实验三程序清单续2)
(实验三程序清单续3)
四、实验结果与分析
实验项目名称: SSH框架编程 实验学时: 8 同组学生姓名: ———— 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
(1)熟练掌握Hibernate框架编程技术;(2)熟练掌握Struts2框架编程技术;(3)熟练掌握Spring框架编程技术;(4)熟练掌握以上三种框架综合编程技术;
(5)调试程序要记录调试过程中出现的问题及解决办法;
(6)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(7)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔4以上计算机,Windows 操作系统,装有JDK1.7,MySQL,Tomcat6和Eclipse软件。
三、实验内容及过程
(1)使用Hibernate将顾客表中的内容输出到JSP页面中,要求实现以下功能:
将如下的数据库脚本在MySQL中执行,数据库为MyDB; create table customers(customerid char(8)primary key, name char(40)default null, phone char(16)default null); 在项目中加入Hibernate支持并生成映射文件,映射类以及HibernateSessionFactory类。再创建一个Dao类读取顾客表中所有记录返回集合List
(2)使用Hibernate对多表进行关联操作。对数据库脚本中的职工表与部门表进行级联操作。要求实现以下功能: 可以根据部门编号查询部门及其查询该部门下的所有职工信息;
删除部门时级联删除部门下的所有职工。考虑当删除部门时不想删除该部门的职工而只将职工中的部门编号置为空,应该怎么设置。
(3)使用Struts2实现以下用户登陆功能:
完成一个用户登录,用户名以及密码为必填项。使用 Action中的validate函数进行验证。体会Struts2基本流程; 当用户输入的用户名不是 admin或密码不是 12345时要求用户重新登录,并给出错误提示。当用户填写正确时,导向一个成功页面显示用户登录成功; 结合使用Hibernate将用户信息保存到数据库中; 利用Struts标签 bean 以及logic标签,将数据库中的表Customer中的内容输出,在页面中输出成表格,使用Hibernate读写数据库。
(4)Struts国际化试验,改造上述实验。当用户名或密码未输入,在中文环境下显示中文,在英文环境下显示英文错误信息。注意:编写两个资源文件。
(5)编写图形接口Shape,该接口中有抽象函数计算面积double area();编写圆类Circle与矩形类Rectange实现该接口。再编写一个ShapeDao类,将Shape接口作为其属性。通过Spring配置JavaBean,实现Bean的动态注入。即只需改变注入的Bean就可以计算不同图形的面积。
(6)完成网上成绩录入系统综合实验。实验要求读取数据库中学生表、课程表和选课表中的内容,动态形成表单;教师可以登陆系统录入学生成绩。其中总评成绩=平时成绩*30% +期末成绩*70%,各项成绩为百分制。 教师登陆界面;
图14.16 教师登陆界面参考
登陆成功后选择所要录入的课程;
图14.17 教师选择课程界面参考
录入成绩界面;
图14.18 教师录入成绩界面参考 点击“保存成绩”,则向数据库中写入输入的成绩。要求:
(1)学会SSH框架编程环境;
(2)学会使用Eclipse的各种调试方法;
(3)熟练掌握Hibernate、Struts与Spring综合编程的使用。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)
(实验四程序清单续1)
(实验四程序清单续2)
四、实验结果与分析
第三篇:java ee 总结
程序题(计算器设计这个是servlet程 private double c;序)private double area;// 大题1网页布局和设计部分:public double getA(){System.out.println(“执行Action中的update方法!”);return “success”;resp.setContentType(“text/html;charset=gb2312”);req.setCharacterEncoding(“gb2312”);PrintWriter out=resp.getWriter();out.println(“
”);out.println(“return a;} public void setA(double a){this.a = a;} public double getB(){
return b;} public void setB(double b){this.b = b;} public double getC(){return c;} public void setC(double c){this.c = c;} public double getArea(){return area;} public void setArea(double area){this.area = area;} public String execute(){if(a+b>c&&b+c>a&&c+a>b)double s=0;{area=Math.sqrt(s*(s-a)*(s-b)*(s-c));s=1.00/2*(a+b+c);}elsereturn “success”;return “error”;} 大题3Struts2login(登录login 窗口的问题1)public class Login {//登录的代码 private User user;private String id;public String getId(){}
return id;public void setId(String id){} this.id = id;public User getUser(){} return user;
public void setUser(User user){} this.user = user;public String execute()
{String sql=“from Users where name='”+user.getUsername()+“'”;HibernateUtil();
HibernateUtil util = newObject obj = util.search(sql);System.out.println(users.getName()Users users=(Users)obj;+“:”+users.getPass());tPass()))if(user.getUserpass().equals(users.ge {return “success”;}else{return “error”;}}public String {add()System.out.println(“执行Action 中的 addreturn ”success“;方法!”);}public String {delete()System.out.println(“执行Action中的delete方法!”);return “success”;}public String {
update()}public String {search()System.out.println(“执行Action中的search方法!”);return “success”;} }
Hibernate对象到2维表的映射(实现对数据库的增删改查操作 问题2)public class HibernateUtil {public Object search(String sql)Session
{ session=HibernateSessionFactory.getSession();
Query query=session.createQuery(sql);List list=query.list();return list.get(0);}
User类的定义(问题3)public class User {private String username;private String userpass;public String getUsername(){ return username;}
Public { void setUsername(String username)this.username = username;public String getUserpass(){}
return userpass;public void setUserpass(String userpass){ }
this.userpass = userpass;}
} 主窗口的定义index.jsp(问题4)
Struts2的启动配置(问题5)
1、企业应用程序的特点:分布式、告诉反应性、安全性、可扩展性、集成性。
2、Java EE结构的应用程序包括4层:客户层、表示逻辑层、业务逻辑层、企业信息层。
3、Jsp全称:java server pageEJB 全称:enterprise javabeans4Java、Java eeee 是一种的标准组件:体系结构,jsp、不是编程语言servlet、EJB是一个标准的中间件体系结构 简化的开发与部署
5、Java ee是由Sun开发的6、Applet运行在客户端,具有丰富的图形界面
Servlet运行在服务器端,没有图形界面
7、Java ee的运行需要有jdk89、、Mvc(model view controller)Html基础问题(表格问题1)