java程序转exe过程总结

时间:2019-05-15 10:01:29下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《java程序转exe过程总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《java程序转exe过程总结》。

第一篇: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;  编写JSP文件。使用JSTL标签输出,如教材P291图15.13所示。

(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(“”);out.println(“输入第一个数:”+“”);ame=yunsuan>“);out.println(””+“+”+“”);out.println(“”);value=cheng>“+”*“+”“);out.println(””+“/”+“”);out.println(“”);out.println(“输入第二个数:”+“”+“=”);out.println(“”);out.println(“”);out.println(“”);//计数器计算程序部分:resp.setContentType(“text/html;charset=gb2312”);req.setCharacterEncoding(“gb2312”);PrintWriter out=resp.getWriter();String num1=req.getParameter(“num1”);Stringnum2=req.getParameter(“num2”);Stringyunsuan=req.getParameter(“yunsuan”);Double a1=Double.valueOf(num1);Double a2=Double.valueOf(num2);if(yunsuan.equals(“jia”)){out.println(“计算结果为:”);out.println(a1+a2);} else if(yunsuan.equals(“jian”)){out.println(“out.println(a1-a2);计算结果为:”);} else if(yunsuan.equals(“cheng”)){out.println(“计算结果为:”);} out.println(a1*a2);else if(yunsuan.equals(“chu”)){out.println(“计算结果为:”);out.println(a1/a2);} //计算器 config的配置部分://主页网页配置部分1: mycom.my.servlet.note my /text // 结果网页配置部分2: mecom.my.servlet.cx me /test 大题2三角形问题:(/求面积函数)public class Area {private double a;private double b;

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)

struts2/* 填空题:

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)

定义表头定义表行-定义表元 10
、(问题2 表单方法)

11、(问题3 下拉列表)

12、(问题4 列表框)

13、(问题5 控件问题)button——普通按钮radio ——单选按钮 checkbox——复选框 select ——下拉式菜单 text ——单行文本框 textarea——多行文本框 submit——提交按钮 reset—— 重填按钮

第四篇:PHD申请过程分享(EE)

http://www.jiemo.net/

PHD申请过程分享(EE)

惯例,本人背景:本科985 电气工程国内TOP5,均分惨不忍睹 77%,做过国创,毕业设计校级优秀。MSc诺丁汉Electrical Engineering for Sustainable and Renewable Energy.均分74%。工作经验某电业局不到一年。

接下来就是申请结果,申请的方向大概就是power electronics for renewable energy 方向,目前拿到Warwick 半奖和诺丁汉全奖,基本决定选择诺丁汉全奖。下面开始。

第一,奖学金。

首先明确几个概念。第一个概念就是半奖和全奖。看过几个帖子,貌似很多有意申请PHD的同学对奖学金的额度不是很了解。半奖就是cover国际学生学费的奖学金,而全奖就是cover国际学生的学费和国际学生的生活费。这里提到国际学生,也就是我们,因为英国学校的学费存在严重的不平等,UK/EU的学费大概5000pounds左右,而作为international的我们,需要每年交掉17000-18000pounds的学费。

明确了奖学金额度之后,那么就说说这两类奖学金的来源。首先,全奖一般导师是无法提供的。全额奖学金一般是学校设立的专门针对international students的奖学金。cover额度基本上是上面提到的17000+pounds的学费和每个月

http://www.jiemo.net/

900pounds的生活费。这样,全奖一年的总额度大概有30000pounds,也就是30万人民币。但是需要注意的是全奖的机会非常少,通常所有学院的申请者去竞争5到10个名额,所以作为没有paper均分不高的我们,不应该把太多的注意力放在这类奖学金上面。有些同学可能会说我们还有CSC,这个我们下面再说。其次就是半奖,可以说大部分带奖读博的同学都是拿的半奖。半奖一般是导师提供的,而且这类奖学金一般不会放在学校发布全奖信息的网页,而是往往放在各个学院网页里。需要注意的是半奖实际上是导师手上的项目提供的针对UK/EU学生的全奖,也就是5000pounds的UK/EU的学费+每个月900pounds的生活费,也就是大概16000-17000pounds,但是由于international和UK/EU的学费存在差额,那么对于我们international的学生来说,此类奖学金基本相当于我们的学费,所以我们还是需要自己出生活费。对于工科来说,此类奖学金数量不少,可以说如果MSc的均分在70以上,申请到一个半奖应该问题不大。)接下来,就是之前提到过的CSC,在我看来,对于在英国读MSc申请PHD的同学来说,CSC的截止时间太早。通常我们拿到第一个学期的成绩之后的一个星期就会截止,也就是二月份。那时候我们刚刚拿到第一学期成绩,想要在一个星期里陶瓷导师,做好网申,拿到offer,基本是不可能的。(CSC要求申请者至少是offer holder),那么我们申请CSC就可能面临等一年再入学的情况,相信很多同学都不想浪费这一年。有的同学说,那我们可以提前联系导师做申请啊,在这里奉劝一句,没有第一学期的成绩的时候,不要去联系导师,就算联系

http://www.jiemo.net/

了,邮件石沉大海的可能性也非常的大。而没有导师支持申请,offer也基本没戏。

经过以上分析,那么对于我们这类想不gap一年,以及背景不强的学生来说,半奖成为最大的可能。下面就来分析如何拿到半奖。楼主在华威的半奖,也是无意之中拿到的,下面我们来详细说。对于我们想要拿到半奖的学生来说,“投其所好”成为最重要的一点。很明显,投其所好,投的就是导师的口味。在我们拿到第一学期的成绩之后,就要大量浏览各个学校的**,找到心仪的导师,仔细看导师的研究方向。这里提到的仔细看,不是仅仅局限于各个学校**上对导师研究方向的列举,而是我们要看导师最近1-2年发表的文献(此类信息也能在导师的personal profile里找到),才能明确目前导师的研究方向是什么。在仔细研究过导师的研究方向之后,在套磁的时候就有重点,会让导师感觉你的套磁很真诚。举个例子,楼主在陶瓷华威的导师的时候,读了那位导师去年发表的关于Wide bandgap semiconductor的文章,这样我在套磁的时候,第一段就提到我读了这个文章,而我的套磁信在一个星期之后就得到了回复,更重要的是那位导师是直接打电话过来的。可见“有的放矢”在申请套磁甚至拿到半奖的过程中是非常非常重要的。

最后,对于奖学金这部分,我想说的是,全奖靠实力,半奖靠运气。在我们做到了有的放矢之后,就要看我们陶瓷的导师手里有没有项目了。但是这里需要注意的就是,很多导师第一次回邮件,都会说没有钱,需要你自费,这时候不要气馁,对于给你回复的导师一定要保持联系,同时表达自己家庭支持三年自费比较困

http://www.jiemo.net/

难,在邮件往来3,4次之后,有些有钱有项目的导师就会松口了。本人同学申请到bristol的半奖就是这样耗来的。L;W7 L3 O;c+ N9 u% N 第二,何时开始申请。

这里提到的何时开始申请,其实应该是从套磁开始的。楼主建议,如果你的本科背景很强,比如985毕业,而且85+,各种科研经历的话,你可以在没有拿到第一学期成绩的时候就开始。对于大多数同学,一定要等到第一学期成绩出来以后,开始套磁。这里楼主说一下套磁的技巧。除了上面提到的套磁需要有的放矢,也需要你自己对你自己的情况加以了解。你要发现你自身适合博士研究的特点,然后要清楚地把这个特点写出来。举个例子,楼主在套磁的时候除了着重说了第一学期还不错的成绩(第一学期75%)以外,也着重说了楼主本科国创的经历,已经本科毕业设计的经历。另外,千万不要第一次给导师发邮件的时候只说“您需不需要招PHD”以及类似的话。一般这类没有内容的邮件教授是不会回的。我们的套磁信一定要直接。第一段表达我们对导师研究的兴趣,第二段就开始罗列自己的经历,就像楼主上面提到的。然后在附件附上自己的CV以及第一学期成绩单。最后强调一点,不要群发。虽然我知道大多数人不会这样做,但是也确实有人这样做过。

这里同学们可能就有疑问了,第一学期成绩要多少才能得到导师的回复。在我看来,对于工科来说第一学期成绩在65%以上,就可以发套磁信了。如果有的同学在65%以下,那么你最好在等到第二学期成绩出来之后,再去申请,也就是

http://www.jiemo.net/

六月份左右。这时候也不算晚。如果第一学期成绩在60%以下,那我建议还是不要奢求能拿到奖学金了,但是自费还是有导师会要的。

总结,申请开始时间一般在每年2月份(申请9月入学)。但是第一学期一定要努力学习,至少保证65%。

第三,也是最重要的一点,申请目标的确定。

选择申请目标,也就是目标导师,直接影响着我们的申请结果已经奖学金情况。上面已经提到了奖学金的各类信息。而对于我们选择目标导师的时候,楼主建议遵从以下原则。第一,导师的研究方向是你真正感兴趣的方向。第二,不要因为学校而放弃了一个好导师。第三,正确认识各个学校的水平。

这部分可以说是博士申请最重要也是最核心的部分。对于第一点,导师的研究方向跟你情投意合,你的三年多的时间会非常滋润快乐,相反,就暗无天日甚至无法毕业。所以我们在第一学期的学习过程中,也要逐渐明确我们真正感兴趣的方向是什么。就拿楼主自己来说,楼主在诺丁汉开始学习之前,对电力电子以及新能源的研究是一无所知的。由于楼主本科学校在电力输送以及高电压方向实力雄厚,所以楼主曾经的兴趣也是在高电压方向的。但是在诺丁汉学习了一个学期之后,楼主对于新能源接入有了非常浓厚的兴趣,所以楼主就针对这类研究方向的导师,大规模的发送了套磁信,目前拿到的两个带奖offer也都是此方向的。但是现在回首看来,其实我们作为学生,对某一方向的兴趣其实大多都源自自己学

http://www.jiemo.net/

校在某个方向比较给力的科研实力。所以我们在做MSc选校的时候也要考虑到此类因素。这点在下一部分再做讨论。

下面就是第二点,不要因为学校而放弃了好导师。我们要知道,PHD申请的时候学校综合排名什么的基本没有参考意义了,甚至各大排名中给出的各个学科排名也是没有参考意义的。我们唯一需要参考的就是RAE学术评估结果。我们在套磁导师的时候,可能会因为这个学校排名一般而不去考虑,实际上往往这类学校在某些专业确实非常出彩。就拿Nottingham举例,诺丁汉在太傻一直都不火,原因无非就是因为宁诺。这些东西我们在下一点再说。诺丁汉的科研实力还是非常不错的,尤其是在药学,法学等专业。拿EE来说,诺丁汉在电力电子的科研实力可以说是world-leading的。这一点也得到了楼主套磁的华威的导师的证实。诺丁汉的EE拥有全世界最大的电力电子研究组(PEMC group),上上下下一百余人。另外一个佐证就是全英国第一届power electronics annual conference就在诺丁汉举行,帝国理工科研组的头头Tim-Green,布里斯托退休名誉教授都参与了这个conference。楼主有幸参加其中一天的活动,深刻地感受到了诺丁汉电力电子的强大的科研实力。现在回归正题,我们在套磁导师的时候,如果你注意到一个学校大部分导师的研究方向都集中在某一方面的时候,那么这个学校一定在这一方面实力很强。实力强的背后就是数量比较多的项目,带来的就是我们拿到半奖更大的可能性。

第三点,正确认识各个学校的水平。其实这一点在上面已经提到了。我们选校务必要从科研实力出发,排名真的不重要。PS:剑桥除外。帝国理工不除外。

http://www.jiemo.net/

第四,给各位筒子们的几点建议。

首先就是正在纠结于MSc选校的筒子们,如果你正在纠结MSc选校,如果你打算以后申请PHD,那么务必要明确你拿到offer的各个学校的科研方向。选择一个你最感兴趣的方向对于你以后申请PHD大有好处。不要过分关注排名。排名是买来的你们知道不?除了G5,top30的学校有区别吗? 下面对各个学校在强电的各个领域的研究做个大致的分类。

电力电子,电机,新能源接入:首推 诺丁汉,其次,华威,bristol,谢菲尔德,伯明翰。

电网,HVDC:首推 曼彻斯特,其次 斯特拉斯克莱德,巴斯,诺丁汉 电力电子偏向材料的研究:华威,利兹。

其他学校可能名气较大,但是在强电领域不怎么给力,比如南安。另外没有提到的帝国理工,剑桥,因为这些学校排队等着自费的学生一抓一大把,所以暂时不在我们的考虑范围。

其次,第一学期一定要好好学习。

最后,各位在国内学习电气工程及其自动化的同学,大部分都梦想进国家电网或者南方电网。所以大多数人也都乐于选择曼大一类偏向电网的学校。其实电网的研究在国外已经不是主流,而对于英国来说,可以说只有电力电子方向的科研实力是可以跟美国匹敌的。另外,HVDC(直流输电)也必然是国内以后的发展方

http://www.jiemo.net/

向,而直流输电主要的技术难点就是电力电子的研究。所以大家不要因为国内的形式而改变自己的发展道路,而且国内这种形势已经在悄悄改变了。这也是楼主辞职的主要原因,楼主之前工作的电业局也是一个直辖市的电业局。

最后的最后,希望大家申请顺利。如果有什么疑问,楼主也很乐意回答。最后补充一句,楼主PHD 的topic是 wide bandgap high-frequency conv**er 的topology 和 control strategy 已经他在flywheel energy storage中的应用。另外楼主拿的全奖也不是学校的全奖,而是诺丁汉新建立的国际海洋经济技术研究院的全额奖学金。

第五篇:java ee技术调查报告

技术一.Weblogic服务器

特点:Java EE提供了一个框架(一套标准API)用于开发分布式结构的应用,这个框架的实际实现留给了第三方厂商。部分厂商只是专注于整个Java EE架构中的的特定组件,如Apache的Tomcat提供了对JSP和Servlet的支持,BEA系统公司则通过其WebLogic应用服务器产品为整个Java EE规范提供了一个较为完整的实现。

WebLogic服务器已使建立和部署伸缩性较好的分布式应用的过程大为简化。WebLogic和Java EE代你处理了大量常规的编程任务,包括提供事务服务、安全领域、可靠的消息、名字和目录服务、数据库访问和连接池、线程池、负载平衡和容错处理等。通过以一种标准、易用的方式提供这些公共服务,象WebLogic服务器这样的产品造就了具有更好伸缩性和可维护性的应用系统,使其为大量的用户提供了增长的可用性。功能: 1 在使用IP地址的一台计算机,或在使用集群捆绑在一起的多台计算机上,或在通过代理服务器管理的多台计算机上建立拥有相同域名的不同站点。部署基于J2EE 标准编写的服务器JAVA代码,包括servlet,JSP,JavaBean 和EJB。使用J2EE 扩展网络服务集成分布式系统,包括用于数据库连接的JDBC、用于信息传递的JMS、用于网络目录访问的JNDI、用于分布式事务处理的 JTA 和用于电子邮件处理的JavaMail。部署使用远程方法调用(RMI)的纯Java 分布式应用程序。通过使用RMI—IIOP(RMI over Internet Inter-ORB Protocol)协议部署近似CORBA的分布式应用系统。通过使用安全套接层(SSL)和Weblogic的内在支持为用户验证和授权,实现强大的安全性。通过将多个Weblogic服务器组成一个集群提供高可用性、负载均衡和容错能力。利用Java 的多平台能力在Windows NT/2000,Sun Solairs ,HP/UX 和其他Weblogic支持的操作系统上部署Weblogic服务器。在任一平台上,通过使用WebLogic直观的进行基于Web 的管理和监视工具可在网络上轻松管理一个或多个WebLogic服务器。

目前最新的版本是WebLogic Server 12c。

技术二.JDBC

JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。

类型1: JDBC-ODBC Bridge

在JDBC出现的初期,JDBC-ODBC桥显然是非常有实用意义的,通过JDBC-ODBC桥,开发人员可用JDBC来存取ODBC数据源。不足的是需要在客户端安装ODBC驱动程序,换句话说,必须安装Windows的某个版本。使用这一类型要牺牲JDBC的平台独立性。另外ODBC驱动程序还需具有客户端控制权限。类型 2:JDBC-native driver bridge

JDBC本地驱动程序桥提供了一种JDBC接口,它建立在本地数据库驱动程序的顶层,而不需要ODBC。JDBC驱动程序将对数据库的API从标准的JDBC调用转换为本地调用,使用此类型要牺牲JDBC的平台独立性,还要求在客户端安装客户端数据库驱动程序。类型 3:JDBC-network bridge

JDBC网络桥驱动程序不需要客户端数据库驱动程序。它使用网络上的中间件服务器来存取数据库。这种应用使得负载均衡、连接缓冲池和数据缓存等技术的实现有了可能。由于第3种类型往往只需要相对更少的下载时间,具有平台独立性,且不需要在客户端安装数据库驱动程序并取得控制权,所以很适合于Internet上的应用。

类型 4:Pure Java driver

通过使用一个纯Java数据库驱动程序来执行数据库的直接访问。此类型实际上在客户端实现了2层结构。要在N-层结构中应用,一个更好的做法是编写一个EJB,让它包含存取代码并提供一个对客户端具有数据库独立性的服务。

WebLogic服务器为一些通常的数据库提供了JDBC驱动程序,包括Oracle、Sybase、Microsoft SQL Server及Informix。它也带有一种JDBC驱动程序用于Cloudscape,这是一种纯Java的DBMS,WebLogic服务器中带有该数据库的评估版本。让我们看一个实例。

JDBC实例

在这个例子中假定已在Cloudscape中建立了一个PhoneBook数据库,且包含一个表名为 CONTACT_TABLE的表,它带有2个字段:NAME和PHONE。开始时先装载Cloudscape JDBC driver,并请求driver manager得到一个对PhoneBook Cloudscape数据库的连接。通过这一连接,可构造一个Statement对象并用它来执行一个简单的SQL查询。最后用循环来遍历结果集的所有数据,并用标准输出将NAME和PHONE字段的内容进行输出。

import java.sql.*;

public class JDBCExample{

public static void main(String args[]){

try{ Class.forName(“COM.cloudscape.core.JDBCDriver”);Connection conn = DriverManager.getConnection(“jdbc:cloudscape honeBook”);Statement stmt = conn.createStatement();String sql = “SELECT name, phone FROM CONTACT_TABLE ORDER BY name”;ResultSet resultSet = stmt.executeQuery(sql);String name, phone;while(resultSet.next()){

name = resultSet.getString(1).trim();

phone = resultSet.getString(2).trim();

System.out.println(name + “, ” + phone);}

}

catch(Exception e){ // Handle exception here e.printStackTrace();

}

} }

接着我们来看一看JDBC是如何在企业应用中的进行使用。

JDBC在企业级应用中的应用

以上实例其实是很基本的,可能有些微不足道,它假定了一个2层结构。在一个多层的企业级应用中,更大的可能是在客户端和一个EJB进行通信,该EJB将建立数据库连接。为了实现和改进可伸缩性和系统性能,WebLogic服务器提供了对连接缓冲池Connection pool的支持。

Connection pool减少了建立和释放数据库连接的消耗。在系统启动以后即可建立这样的缓冲池,此后如故再有对数据库的请求,WebLogic服务器可很简单地从缓冲池中取出数据。数据缓冲池可在WebLogic服务器的weblogic.properties文件中进行定义(可参考weblogic.properties文件中的例子,WebLogic服务器的文档中还有更详细的参考信息)。

在企业级应用的另一个常见的数据库特性是事务处理。事务是一组申明statement,它们必须作为同一个statement来处理以保证数据完整性,缺省情况下JDBC使用auto-commit事务模式。这可以通过使用Connection类的setAutoCommit()方法来实现。

技术三:EJB EJB是sun的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,如目录服务、事务管理、安全性、资源缓冲池及容错性。

EJB规范定义了3中基本的bean类型:会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

Stateless session beans:提供某种单一服务而不维持任何状态,在服务器故障发生时无法继续存在,生命期相对较短。如它可能被用于执行温度转换计算。

Stateful session bean:提供了与客户端的会话交互,可存储状态从而代表一个客户。典型例子是购物车。不过在服务器故障时无法继续生存,生命期相对较短。每一个实例只用于一个单个的线程。

Entity beans: 提供了一致性数据的表示,通常存放在数据库中,在服务器故障发生后能继续存在。多用户情况下可使用EJB来表示相同的数据,Entity EJB的一个典型例子是客户的帐号信息。

尽管有以上的区别,所有的EJB还是有许多的共同之处。它们都处理home interface。它定义了一个客户端是如何创建与消亡EJB的。可在bean中对定义了客户端方法的远程接口进行调用;bean类则执行了主要的商务逻辑。

描述EJB的开发已经超出了本文的范围。但如果一个EJB已被开发或从第三方购买,它就须在应用服务器中进行发布。WebLogic Server 5.1带有一个EJB Deployer Tool来协助处理EJB的发布。当你使用EJB Deployer Tool的时候,你要定义客户端所用的JNDI名字来定位EJB。Deployer Tool将生成wrapper类来处理和容器的通信及在一个jar文件中把被请求的Java类绑定在一起。

一旦EJB被发布,客户端就可以使用它的JNDI名字来定位EJB。首先它必须得到一个到home接口的reference。然后客户端可使用该接口,调用一个create()方法来得到服务器上运行的某个bean实例的句柄;最后客户端可以使用该句柄在bean中调用方法。

EJB3.0 在EJB3.0规范中,写一个无状态会话bean(SLSB)只需要一个简单的Java文件并在类层加上@Stateless注释就可以了。这个bean可以扩展javax.ejb.SessionBean接口,但这些不是必须的。

一个SLSB不再需要home接口,没有哪类EJB再需要它了。Bean类可以实现业务接口也可以不实现它。如果没有实现任何业务接口,业务接口会由任意public的方法产生。如果只有几个业务方法会被暴露在业务接口中,这些方法可以使用@BusinessMethod注释。缺省情况下所有产 生的接口都是local(本地)接口,你也可以使用@Remote注释来声明这个接口为remote(远程)接口。

下面的几行代码就可以定义一个HelloWorldbean了。而在EJB2.1中同样的bean至少需要两个接口,一个实现类和几个空的实现方法,再加上部署描述符。

import javax.ejb.*;/** * A stateless session bean requesting that a remote business * interface be generated for it.*/;@Stateless;@Remote public class HelloWorldBean { public String sayHello(){ return “Hello World!!”;} }

EJB3.1

EJB3.1又一次引入了一系列新的特性,倾向于挖掘技术的潜力。依我来看,EJB3.1绝对是一个重要的发布版本,它将那些长期让人渴望的特性带到开发者面前,更加能够满足最新的企业应用程序开发,同时对EJB再次被人们采纳将做出巨大的贡献。EJB 3.1 最终发行版已经发布了。

EJB3.1架构模式相对于旧的架构模式有如下的一些扩展和针对API的一些简化: · 简化的本地模式让去除了本地的商务接口一样可达到session bean · 直接用war文件打包一个ejb组件不需要一个ejb-jar · 在Java SE环境中嵌入API执行EJB · 引入了可以提供简单的共享应用数据和支持一致性访问的Singleton session bean组件 · 自动创建EJB定时器

· 基于EJB定时表达式的日程表 · 异步session bean调用

· 对于一个EJB轻量子集的定义,这个子集可以提供一些Java EE文档(EJB lite)· 一个用来查询ejb组件的Global JNDInames(统一的 全局 JNDI 命名)规则

下载java程序转exe过程总结word格式文档
下载java程序转exe过程总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    学习java SE ME EE之路

    Java学习路线 先学习j2se 要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用IDE,然后渐渐的过渡到使用IDE开发,毕竟用它方便嘛。学习j2se推荐两本书,《java2核心技术一二......

    关于JAVA一些问题 程序总结

    关于JAVA一些问题 程序总结 public interface SinterFace { public final static String intstr="hello is interface"; public abstract void nostat(); } public cla......

    java学习过程参考

    收集的一位前辈的经验,分享给大家,希望对大家的学习有所帮助。 —————————————————————————————————— 我是从事软件相关工作的,仅仅给你一些......

    转角遇到“爱”—EE 转CS,顶级offer申请总结

    转角遇到“爱”—EE 转CS,顶级offer申请总结(世毕盟学员) 清华电子工程 Overall:GPA92.7 Rank:8/239 TOEFL:106/speaking 23 GRE:324+4.0 录取结果:JHU CS PHD,CMU MS in Biomedical......

    用java调用oracle存储过程总结

    用java调用oracle存储过程总结 分类: PL/SQL系列 2009-09-24 15:08 253人阅读 评论(0) 收藏 举报 声明: 以下的例子不一定正确,只是为了演示大概的流程。 一:无返回值的存储......

    Java程序员修炼十大过程

    Java程序员修炼十大过程 学习java这么久,见到过项目中的神人在键盘上运指如飞的编程速度,当时就被震撼了。当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别......

    Java技术:汉字转拼音码

    Java技术:汉字转拼音码 public class Test_unicode { /** * @param args */ public static String getPinym(String a) { // 汉字区位码 int li_SecPosValue[] = { 160......

    java总结

    调用父类构造方法  在子类的构造方法中可使用super(argument_list)语句调用父类的构造方法  如果子类的构造方法中没有显示地调用父类构造方法,也没有使用this关键字调用重载......