正文
流程固化java代码 流程编排 java
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
java代码为什么那么繁琐
1. Java语言是不是繁琐呢流程固化java代码?手头有一本《Thinking in Java》中文第四版,数了一下正文共22章856页。随手翻一下,示例代码和讲解正文大概比例在1.5 : 1这样。没有真正用Java干过项目流程固化java代码的人肯定会大为惊叹:流程固化java代码我勒个去,这么多知识点!此为“繁”;
2. 绝大部分搞编程的人,事实上,都是在使用一门语言的某个子集。该子集的形成由项目主导者发起、开发活动参与者共同决定,且相对长期稳定。每一个即将参与该项目的人肯定会先把语言学个大概(其难度参考前一条),然后再根据项目学习该语言子集,最后固化下来。不断使用该子集固然能提升开发效率,但代价不菲,极容易就变成了项目中的一颗镙丝钉(“专家”);
3. 一门语言的设计肯定不会一蹴而就,一步步改良。没记错的话,Java诞生于1995年左右,到今天已经快满20年。在当时那种IT环境和条件下设计出来的语言,必然存在许多妥协、限制与错误,既不能随便将之抹除(可能还有很多工程依赖着),也不能随便更正,只能通过添加新语法、新类库来打补丁,导致语言更“繁”。举个例子,非内建容器类库是一个典型硬伤,再举个例子,时间日期类没见有多好用,也没见有更新过,连替代品都没见过(恕流程固化java代码我不写Java,的确没见过);
4. 类库(框架)丰富是好事还是坏事,要看针对同一个任务能找到多少替代品。如果有三到四个,那么肯定是好事,既不会造成单点故障,也不至于造成理解和记忆上的负担。但是类库太多,选择太多,人的幸福感反而会下降,高效率也就无从谈起;
5. 框架真的可以保证快速开发吗?熟悉的话是可以的,专家编程嘛!但是
熟悉之前要花非常多时间学习使用吃闷亏。
框架只能免除掉一部分开发工作量。
框架跟业务总是存在“不合缝”的差异。
只不过将复杂度从开发转移到了部署运维。
依赖性极强。
6. IDE可以提高开发效率吗?仅仅一部分罢了。IDE本身就是个非常复杂的东西,将之调校到符合个人开发步调的进程可能会持续很久,事实上大部分人也只是用一些常用功能罢了。而且
基于图形界面意味着自动化不容易(需要编写额外插件)。
出了问题查找原因不易。
依赖性极强。
7. Java本身是面向系统(机器)的,不是面向开发人员的。这种强设计保证有助于提升目标系统的可靠性,却牺牲了开发人员的幸福感。既然设计得如此严谨规范,为什么不能自动生成Java程序,
Java程序打成Jar包全过程
Java程序完成以后 对于Windows操作系统 习惯总是想双击某个exe文件就可以直接运行程序 现我将一步一步的实现该过程 最终结果是:不用安装JRE环境 不用安装数据库 直接双击一个exe文件 就可以运行程序
下面我将以我最近写的一个程序作例子 进行该打包过程
该程序是使用流程固化java代码了:Hibernate Spring Derby的Java GUI (JDK需要 版本 因该版本才有Derby) 我使用的是Eclipse进行开发
第一步:完成Java GUI程序
在Eclipse下 程序能够正常运行
第二步:准备清单文件(MANIFEST MF)
方法 :直接拷贝其它能运行的JAR文件中的MANIFEST MF进行修改
方法 :利用IDE工具 如Eclipse在生成JAR文件时自动生成
MANIFEST MF内容如下:
Manifest Version:
Main Class: manager ui MainFrame
Class Path: /lib/spring jar /lib/hibernate jar /lib/derby jar
SplashScreen Imager: manager/resources/images/splash jpg
说明:
Manifest Version - 指定清单文件的版本号
Main Class -指定程序运行的入口类 注意 类名后不要加class扩展名
Class Path -指定支持库的路径 指程序运行目录 即导出的JAR包所在目录 程序运行时依据Class Path项的设置路径来查找支持库 每一个支持库之间用空格隔开 在这里使用了hibernate spring derby
注意:
如果Java应用程序用到了一些Eclipse包 那么就必须将这些包也复制到程序运行目录 设置到Class Path 否则程序将无法运行 引用了一些外部组件也需要如此设置 如hibernate spring derby
除了入口类的包名和类名之外 其他设置项都不分大小写 比如 Class Path写成class path或CLASS PATH也可以 swt jar写成SWT JAR也行
类名后不要加class扩展名
每一行的 : 后都有一个空格 如Class Path:空格 /lib/spring jar
Class Path中 引入的JAR文件每行不得超过 个 否则会报错 但在让人意外的是每行只有前 个有效 故将所有同类型的JAR文件做成一个JAR文件 如我这里的spring jar hibernate jar derby jar都是同类JAR文件的组合
第三步:修改spring配置文件
在spring的 sessionFactory bean的配置中则要这样写(与程序中ClassPathXmlApplicationContext对应)
property name= mappingLocations
list
valuemanager/entity/MyFile hbm xml/value
valuemanager/entity/FileType hbm xml/value
/list
/property
第四步:使用Eclipse生成JAR文件
右键单击项目名 在弹出菜单中选择 Export 在弹出的如下图所示的对话框中 选择 JAR文件 单击 Next
将右边不需要的文件都取消勾选 在 选择导出目标(Select the export destination) 项文本框中设置JAR包的输出路径和包名(可以任意取名)为 D:\manager\manager jar 接受其他的默认设置不变 单击 Next
附注 左边虽然选择了src目录 但源文件并不会导出到包中 除非勾选了 导出Java源代码文件和资源(Export java source files and resources) 项
接受默认设置不变 单击 Next
这一步较关键 如下图所示 选择 从工作空间中使用现有清单 项 将创建的清单文件输入 也可以通过旁边的 浏览 按钮来选择清单文件 输入清单文件后 单击 Finish Eclipse开始将项目打包
附:这里也可以选择Generate the manifest file 但生成的清单文件MAINFEST MF需要修改
注意:清单文件MAINFEST MF一定要按第二步那样设置
生成的JAR文件目录如下:
第五步:生成运行manager jar的批处理文件manager bat(该步可以不要)
在manager目录下创建一个批处理程序manager bat(名字任取 扩展名必须是bat) 其内容仅一句语句 如下
javaw jar manager jar
说明
javaw对应c:\jdk\jre\bin\javaw exe文件 如果windows提示命令未发现 则需要将c:\jdk\jre\bin路径加入到windows环境变量path中
在运行程序的时候有一个讨厌的黑色命令行窗口 要去掉它 可以将run bat内容更改如下 start javaw jar manager jar start是指调用了windows的 运行 命令
在后边加一个pause就可以让流程固化java代码你看到具体哪里出错了 如:
start javaw jar manager jar
pause
双击manager bat 就可以运行该JAR文件了
第六步:让电脑不必安装JRE环境 也能运行
通常运行Java程序有个前提条件 用户电脑必须先安装JRE环境 虽然安装JRE环境非常简单 但毕竟多了一步 算是有一点点的瑕疵 这里给出一个不必让用户安装JRE环境的方法 其实现步骤如下
( )将原JDK中的 jre 目录复制到 D:\manager\java 目录下(java也可换成其他名称)
( )将JDK和JRE从本机卸载掉 这样表示本机没有安装JAVA运行环境
( )修改批处理文件manager bat中的命令为 start java\jre\bin\javaw jar manager jar 仅仅是在javaw前加上了一个相对应路径
双击manager bat即可在不安装JRE环境的电脑运行此Java应用程序
第七步:抛弃批处理文件(* bat) 生成exe文件
用批处理文件运行程序似乎不够专业 虽然它足以完成运行任务 但习惯就象一种毒药一旦染上就很难摆脱它的影响 Windows统治下的人们早已经习惯运行扩展名是EXE的程序 用* bat他们就会感觉别扭
我们可以用一个叫JavaLauncher的免费小程序来代替批处理文件去运行Java程序 JavaLauncher的下载网址是
下载下来的文件是一个名JavaLauncher zip的压缩包 解压后的目录结构如下所示
JavaLauncher zip目录结构
source 目录包含了JavaLauncher的源程序 是用C语言写的
changes txt 是新版的修改说明
launch exe 是主程序
launcher cfg 是配置文件
readme txt 是一些说明和示例
我们只需要launch exe launcher cfg两个文件 将这两个文件复制到打包文件所在的目录 launcher cfg是一个仅三行内容的文本文件 将它修改如下
\java\jre\bin\javaw exe
jar manager jar
第一行设置指向JAR包managger jar的目录 由于launch exe和myswt jar同在一个目录 所以用 即当前目录
第二行设置指向jre\bin\javaw exe的路径 在上面已将jre目录复制到了java子目录中
配置好launcher cfg后 双击launch exe即可运行java应用程序
如果仔佃研究eclipse的启动方式 发现eclipse和JavaLauncher的原理一样 eclipse exe相当于launch exe startup jar相当于manager jar 只不过eclipse exe不象launch exe要具有通用性 所以它没有* cfg这样的配置文件 而是将启动信息固化在eclipse exe中
第八步:美化图标
launch exe文件的图标太单调了 让我们给它换个好看点的 换程序的图标需要用到一个免费的软件 Resource Hacker
第九步:最后的打包
发送给用户之前 通常要用WinZip或WinRAR将所有的文件全部打成一个压缩包 然后用户得到这个压缩包后 将其解压缩后即可运行程序 Eclipse软件就是这种方式
lishixinzhi/Article/program/Java/hx/201311/25574
用Java编写程序读入附件Excel文件中的表格数据,然后用命令行方式输出所有数据
/**
*
*只对流程固化java代码你的Excel 有效流程固化java代码,其流程固化java代码他不能保证
* 示例代码流程固化java代码,不能直接用到生产环境
/
package readExcel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
public class ReadXLSTools {
ListDataModel result = new ArrayListDataModel();
Row firstRow;
Row secondRow;
/**
*
* @param path
* --tell us where is the xls file
*
* please don't pass a folder path.
* @throws FileNotFoundException
*/
public void read(String path) throws FileNotFoundException {
File xlsFile = new File(path);
if (!xlsFile.exists()) {
throw new IllegalArgumentException(
"The source file cannot be found.");
}
if (xlsFile.isDirectory()) {
throw new IllegalArgumentException("Source file can't be a folder!");
}
openXLS(xlsFile);
}
private void openXLS(File xlsFile) throws FileNotFoundException {
InputStream is = new FileInputStream(xlsFile);
try {
HSSFWorkbook xlsWorkBooks = new HSSFWorkbook(is);
HSSFSheet firstSheet = xlsWorkBooks.getSheetAt(0);
for (Row row : firstSheet) {
if (row.getRowNum() == 0) {
firstRow = row;
continue;
}
if (row.getRowNum() == 1) {
secondRow = row;
continue;
}
for (Cell cell : row) {
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
Double value = (Double) getCellValue(cell);
if (value == 0.0) {
continue;
}
DataModel data = new DataModel();
data.project = String.valueOf(getCellValue(row
.getCell(0)));
int organIndex = cell.getColumnIndex();
Cell organCell = firstRow.getCell(organIndex);
String organ = String.valueOf(getCellValue(organCell));
if ("".equals(organ)) {
organ = String.valueOf(getCellValue(firstRow
.getCell(organIndex - 1)));
}
data.organ = organ;
String item = String.valueOf(getCellValue(secondRow
.getCell(organIndex)));
data.item = item;
data.value = value;
result.add(data);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private Object getCellValue(Cell cell) {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
return cell.getRichStringCellValue().getString();
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
return cell.getDateCellValue();
} else {
return cell.getNumericCellValue();
}
case Cell.CELL_TYPE_BOOLEAN:
return cell.getBooleanCellValue();
case Cell.CELL_TYPE_FORMULA:
return cell.getCellFormula();
default:
return "";
}
}
public static void main(String[] args) {
try {
ReadXLSTools tool = new ReadXLSTools();
tool.read("d:\\test\\test.xls");
for (int i = 0; i tool.result.size(); i++) {
System.out.println(tool.result.get(i));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
package readExcel;
public class DataModel {
String organ;
String project;
String item;
double value;
@Override
public String toString(){
return "["+project+","+organ+"/"+item+"]"+value;
}
}
流程固化的固化内容
流程固化的内容主体是流程本身流程固化java代码,为了保证流程可以畅通的运行,与之相对的有流程中岗位的界定、责任的判断、工作内容的标准等相关规定流程固化java代码;
1、岗位的界定;流程固化是针对的经过优化和评估的流程,在优化和评估的过程中,无疑会对现有的岗位进行重新界定和划分,会形成上一定程度的变动。而员工对于这种变动的内容是很难去判断清楚地,这就需要在流程固化之前,就要对流程中所涉及变更的岗位进行重新界定。
以免在流程执行的过程中因岗位界定不清晰而引起工作中的推诿,从而造成流程执行负于表面,无法有效落地,影响流程效果。
2、责任的判断;相当多的企业在提出流程管理的同时,往往也面临这样一个问题。工作效率拖拖拉拉,员工停滞不前,到底是谁的责任?而流程梳理、分析和优化就是来解决这些问题,对企业本身进行分析整理之后,往往都会对以往的“真空区域”或者“三不管区域”进行从新整理。
“能力与态度,哪个更重要?”,相信很多人都会选择后者。只有有态度好的员工才能够保证工作认真的完成。但是怎么样才能够帮助员工端正态度呢?
“流程固化java代码你的这个文件做的不对,重新去做流程固化java代码!”
“谁叫你这么去做的,你为什么不去……”
流程固化java代码我们常常会听到这样的对话,这也是对员工心态的一种不良的影响。如果你想拥有一个好的员工,首先,你先要正确的告诉他,他应该怎么做,这才是问题的关键。
因而为了保证员工的积极性,在流程固化的阶段,一定要明确定义出,员工应该对什么负责,只有这样,才能够让员工对工作量及范围有一个明确的认识,树立起责任心。
3、工作内容的标准;无规矩不成方圆,有了范围和责任人,我们还要明确的是工作的要求,工作需要达到一个什么样的程度?怎么样才叫合格?什么样才叫优秀?
如:生产计划员每天下班前2个小时,就需要将第二天生产计划递交到生产主管手中,如果过了这个时间,计划员没有按时的将计划递交到主管手中,从而造成了生产问题,我们就很清楚的找出问题的原因及相关责任人,对员工的工作情况也一目了然。
只有解决了以上若干的准备,流程才能够真正的固化下来,而不单单只是一层表面的过程。
如何将 JAVA 应用打包为Windows 可执行应用程序
可以参考如下内容:
对于windows用户来说,将java应用程序打包成.exe最好不过了,下面是两种方法。
1、用专业的应用程序打包工具InstallAnywhere,这个软件几乎能在所有平台上运行,当然你要下载到你需要的那个平台的啦!而且它也
能打包成各个平台的安装程序(不止.exe啦,那么好用的东西当然是要收费的啦,但是如果你不是商业用途的话,拿来娱乐和学习还
是可以上百度搜到注册码的)。现在应该已经更新到7.1版了,电驴上能下到7.0版的和注册码,7.1版也能在其他网站下到,不过我忘了
网址了,大家自己搜啦。这个软件的用法我在这里就不详说,给个6.1版本的介绍的网址,(其实是因为我自己也没怎么用过这个,没有这个需求啊!)
2、用MINI的免费的工具javalunch,JavaLauncher的下载网址是:
下载下来的文件是一个名JavaLauncher.zip的压缩包,解压后的目录结构:
l source目录包含了JavaLauncher的源程序,是用C语言写的
l changes.txt是新版的修改说明
l launch.exe是主程序
l launcher.cfg是配置文件
l readme.txt是一些说明和示例
我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三行内容的文本文件,将它修改如下:
.
.\java1.4.2\jre\bin\javaw.exe
-jar myswt.jar
l 第一行设置指向JAR包myswt.jar的目录,由于launch.exe和myswt.jar同在一个目录,所以用"."即当前目录。
l 第二行设置指向jre\bin\javaw.exe的路径。
配置好launcher.cfg后,双击launch.exe即可运行java应用程序。
如果仔佃研究eclipse的启动方式,发现eclipse和JavaLauncher的原理一样:eclipse.exe相当于launch.exe,startup.jar相当于myswt.jar。只不过eclipse.exe不象launch.exe要具有通用性,所以它没有*.cfg这样的配置文件,而是将启动信息固化在eclipse.exe中。
另:美化图标
launch.exe文件的图标太单调了,让我们给它换个好看点的。换程序的图标需要用到一个免费的软件:Resource Hacker,它有中文版,下载网址是:
由于这个软件有中文版的,在这里我就不多说了,挺简单的
第4项:代码固化是什么意思?
这里讲流程固化java代码的代码固化是指开发调试完成流程固化java代码的程序代码通过编程器或其它某种方式下载到单片机流程固化java代码的只读存储器里
关于流程固化java代码和流程编排 java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。