java批处理
⑴ 如何制作批处理文件来运行java程序
操作步骤 1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中; 2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹; 3、在java程序所在的文件夹中新建一个bat文件。
⑵ 北大青鸟java培训:springbatch批处理框架的简介
批处理任务是大多数IT项目的一个重要组成部分,批处理在业务系统中负责处理海量的数据,无须人工干预就能够自动高效的进行复杂的数据分析和处理。
批处理会定期读入批量数据,经过相应的业务处理进行归档的业务操作,批处理的特征是自动执行,处理的数据量大,定时执行。
将整个批处理的流程按逻辑划分可以分为读数据,处理数据和写数据。
以下是整理的springbatch框架的简介知识,希望能帮助到大家。
springbatch对批处理本身的特性进行了抽象,将批处理作业抽象为job和jobstep,将批处理的处理过程分解为数据读,数据处理和数据写。
将异常处理机制分为跳过,重启和重试。
将作业的分区分为多线程,并行远程和分区。
springbatch不是一个调度框架,但需要调度框架来配合完成批处理任务,它只关注批处理相关的任务问题,但没有提供相应的调度功能,如果需要使用调度功能,需要使用调度框架,这里介绍一个比较常用的调度框架quartz,可以配合springbatch完成批处理的任务调度。
springbatch的架构分为三层:基础架构层,核心层和应用层。
应用层包含所有的批处理作业,核心层主要提供JobLauncher、Job和step,基础架构层主要提供通用的读(ItemReader)、写(ItemWriter)和服务处理(如:RetryTemplate重试模板;RepeatTemplate:重复模板),Springbatch的三层架构体系使得Springbatch框架可以在不同的层级进行扩展,避免不同层级之间的相互影响。
job的介绍批处理的作业是由一组step组成,同时job本身也是配置文件的顶级元素。
每个作业都有自己的名字,可以定义step的执行顺序,以及定义作业是否可以重启。
job执行的时候会生成一个jobinstance(作业实例)和一个jobexecution(作业执行器)。
jobinstance包含执行job期间产生的数据以及job执行的状态信息;1个job可以对应多个jobinstance,1个jobinstance可以对应多个jobexecution。
job的配置的主要属性有id(作业的唯一标识)、job-repository(定义作业仓库)、incrementer(作业参数递增器)、restartable(作业是否重启)、parent(指定该作业的父作业)、abstract(定义作业是否抽象)。
step的介绍step表示作业中一个完整的步骤,一个job可以由一个或者多个step组成,step主要负责批处理运行过程中的主要业务逻辑的实现。
河北电脑培训http://www.kmbdqn.cn/认为每次step执行的时候会生成一个或者多个jobexecution,每次任务执行失败的时候,等到下次重新执行该任务的时候就会为该任务的step重新生成一个stepexecution。
⑶ 批处理和java的区别
java是一种面向对象的编程语言,批处理只是一堆DOS命令的集合
两个不同概念的东西,本质都不一样,怎么讨论区别?java和javascript还能讨论一下,批处理和powershell还能讨论一下
打个不恰当的比方,鸡和计算机有什么不同.
⑷ Java如何调用可执行文件和批处理命令-JSP教程,Java技巧及代码
些第三
厂商
(ant)
提供
调用windows
执行程序
我
往往需要调用
些批处理命令
java
却
提供
我采用
种变相
调用
使
java
能调用批处理命令
您
更
希望您能告诉我
前期准备[/b]
quick
batch
file
(de)compiler
任何bat、cmd批处理脚本编译
exe文件
始1.
运行exe
文件
java
jdk
已经提供
调用
累赘
代码
try
{string
command
=
"notepad";
process
child
=
runtime.getruntime().exec(command);
}
catch
(ioexception
e)
{}
2.
运行
bat(批处理)
文件
google
搜索
找
quick
batch
file
(de)compiler
任何bat、cmd批处理脚本编译
exe文件
使用
quick
batch
file
(de)compiler使用非
简单:
quickbfc
文件名.bat
文件名.exe(
批处理命令编译
执行文件)
quickbfd
文件名.exe
文件名.bat(
执行文件反编译
批处理命令)
我
再按第
种
通
java
调用
即
⑸ JAVA如何实现数据库的批处理操作
批量数据进入数据库使用addBatch()和executeBatch()方法
PreparedStatement.addBatch(); ...... PreparedStatement.executeBatch();需要注意的是一次最多不要超过50条:1.因为插入的时候数据库已经锁定,然而若是一次性插入太多会造成其他业务的等待。2.会造成内存的溢出
举例:
PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into ***** values (?,'***')"); for (int i = 0; i < 10000; i++) { pst.setInt(1, i); // 把一个sql命令加入命令列表 pst.addBatch(); } // 执行批量更新 pst.executeBatch(); // 语句执行完毕,提交本事务 con.commit();
⑹ java编程 批处理
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Stack;
public class CheckFilebatch {
private static final String LOG_FILE = "F:/CheckFilebatch.log"; //报错的信息写在这个文件里。
private static final String FILE_HOME = "F:/niceStore /"; //要操作的物理目录
public static void main(String[] args) {
try {
ArrayList<String> fileListInDB = new ArrayList<String>();
FileWriter fw = new FileWriter(LOG_FILE);
// TODO
// 取得DB连接,执行sql“SELECT DISTINCT FILEPATH FROM ARR-FILE”,得到一个ResultSet
// 从DB中取出文件信息,放入fileListInDB 中,
ResultSet rs = null;
while (rs.next()) {
String path = rs.getString("File_Column");
File f = new File(path);
if (!f.exists()) {
// 不合法的报出错误信息。
System.out.println("file not exists: " + path);
fw.write("file not exists: " + path + "\n");
} else {
// 合法的,转化为路径名的规范路径名字符串,加入到fileListInDB中
fileListInDB.add(f.getCanonicalPath());
}
}
rs.close();
//
fw.write("\n\n\n\n");
//下面开始遍历物理目录
File home = new File(FILE_HOME);
Stack<File> tmpStack = new Stack<File>();
tmpStack.add(home);
while (!tmpStack.isEmpty()) {
File tmp = tmpStack.pop();
File[] childs = tmp.listFiles();
for (int i = 0; i < childs.length; i++) {
File child = childs[i];
if (child.isDirectory()) {
tmpStack.push(child);
} else {
if (fileListInDB.contains(child.getCanonicalPath())) {
fileListInDB.remove(child.getCanonicalPath());
} else {
// 删除文件。
child.delete();
// 这里的操作如果把它移动到另一个目录里,作为备份,更好些。
fw.write("delete file: " + child.getCanonicalPath());
}
}
}
}
// 这个程序只考虑文件,不考虑目录
fw.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
⑺ 如何用批处理,启动java的.class文件
建立一个内容为下面格式的bat文件即可了(具体内容需要依照你的情况修改):
前两行是dos命令,用于进入你的class文件所在的文件夹(假设在c:\myjava\中)
path 那行是jdk 的bin文件夹
CLASSPATH那行是运行你的java class所需要的其他辅助的类的文件夹或者jar文件。
xxx是你的java类的完整运行路径(如果在package中,需要加上package,如 java tool.MyTool,tool为package)
c:
cd c:\myjava\
set path=c:\j2sdk1_4_2_08\bin;
set CLASSPATH=.;C:\j2sdk1_4_2_08\lib\tools.jar;
java xxx
⑻ JAVA不是内部或外部命令,也不是可运行的程序或批处理文件。这句话是什么意思
出现“'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。”表示环境变量配置有误。
环境变量:
*环境变量:是供系统内部使用的变量,是包含系统的当前系统用户的环境信息的字符串和软件的一个确定存放的路径 ;
*path:windows系统执行命令时要搜索的路径 ;
*classpath:java在编译和运行时要找的class文件所在的路径 ;
设置JAVA_HOME:
一是为了方便引用,比如,JDK安装在D:MyProgramjavajdk目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次都输入很长的路径串;
二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是系统崩溃!
三则是第三方软件会引用约定好的JAVA_HOME变量, 不然, 你不能正常使用该软件.
⑼ java jdbc 批处理会造成内存溢出吗
java jdbc 批处理会造成内存溢出的,最明显的sql查询记录过多导致内存溢出。
1.使用表名标记它们出处的所有列
2.如果在两个不同的FROM字句中使用同一个表,那么使用别名(上面那个例子就是别名的使用法,这个例子不需要)
3.将所有FROM语句放在一起,形成一条FROM语句
4.删除选择事件
5.将第一次出现之后的WHERE替换为AND
select payment from salary,ranks,jobs where salary.rank = (select ranks.rank from ranks and ranks.title =(selectjobs.titlefrom
jobs and jobs.employee = 'Andrew Cumming';
