导航:首页 > 编程语言 > java调用批处理

java调用批处理

发布时间:2023-10-24 19:36:12

‘壹’ 如何把java中的项目做成批处理

这是我一个真实的项目。发布批处理程序,结构目录如下:

data文件存放数据,etc存放配置文件,lib,存放项目jar包,startup.bat/startup.sh启动脚本。



1、-----windows上.bat文件调用java程序。bat文件内容如下------

echooff

remsetupclasspath

echoset_CP=%%_CP%%;%%1>cp.bat

set_CP=.;classes;"%JAVA_HOME%libdt.jar";"%JAVA_HOME%lib ools.jar"

for%%iin(lib*.jar)docallcp.bat%%i

setCLASSPATH=%_CP%

delcp.bat

echo%CLASSPATH%

remsetJAVA_HOME=

setJAVA_OPTION=-Dfile.encoding=GBK-Xms256m-Xmx256m-XX:MaxPermSize=64m

setRUN_CLASS=batch.Main

"%JAVA_HOME%injava"%JAVA_OPTION%-classpath%CLASSPATH%%RUN_CLASS%


2、-------unix/linux上shell调用java程序,shello文件内容如下---------

if[-z${JAVA_HOME}]

then

echo"JAVA_HOMEnotsetyet,can'trunjavaprogram!"

exit-1

fi

CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar

JLIBDIR=./lib

exportJLIBDIR

forLLin`ls${JLIBDIR}/*.jar`

do

CLASSPATH=${CLASSPATH}:${LL}

done

echo${CLASSPATH}

exportCLASSPATH

JAVA_OPTION="-Dfile.encoding=GBK-Xms256m-Xmx256m-XX:MaxPermSize=64m"

RUN_CLASS=batch.Main

${JAVA_HOME}/bin/java${JAVA_OPTION}-classpath${CLASSPATH}${RUN_CLASS}


‘贰’ java 调用批处理文件或可执行文件

用我这种方法就可以用java调用你想调用的程序,不管是exe,还是bat
public class Invoke {

/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Process process = Runtime.getRuntime().exec("c:/cmd.bat");

}

}

.bat里面写入

C:\\hp\\飞秋FeiQ.exe//这个路径就是你应用程序的路径

就可以运行 了,具体思路是相当于你在cmd里面直接输入C:\\hp\\飞秋FeiQ.exe 应该满意 了嘛

‘叁’ 如何制作批处理文件来运行java程序

操作步骤
1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中;
2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹;
3、在java程序所在的文件夹中新建一个bat文件。
bat文件样例:
样例一:
@echo off
set PATH=.;%CD%\SocketAdapter_lib\jre\bin
set CLASSPATH=.
start java.exe -jar SocketAdapter.jar
@pause

样例二:
@echo off
start SocketAdapter_lib\jre\bin\java -jar SocketAdapter.jar
@pause
注:
可以在没有安装JRE的环境中,运行Java应用程序
java.exe 具体使用参见cmd中输入java -help
javaw.exe 相对于 java.exe 执行java程序过程中MS-DOS不可见

对于安装了JRE的环境中,第2步可以省略,bat文件如下
样例三:
@echo off
java -jar SocketAdapter.jar
@pause

‘肆’ java调用批处理,结束后想调用方法,但是总是在批处理结束前,就调用了,有什么好的处理方法吗

process.waitFor(); //等待
int status = p.exitValue(); //返回值

‘伍’ Java或C#调用命令行批处理命令如何获得返回值

[Ctrl+A
全部选择
提示:你可先修改部分代码,再按运行]
先看看如上的批处理,其中一个命令是mp,其它的参数我们就不说了。2个点
>
1.sql
这个是默认的输出,也就是内容输出
2>Nul
这个是错误输出,也就是如果
mp出现了异常,则不会显示在屏幕上,而是被丢弃到
nul
%errorlevel%
这个是前一个命令执行的返回值,0代表正常
上述逻辑是:
执行一个程序
如果正常,则转到下一个命令,打印出OK,然后转到结束
如果异常,则转到error处理,打印出
ERROR,转到结束
打印内容是随意的
我们的java/C#程序可以读取进程的输出内容,并判断是否批处理执行成功来源:
blog.csdn
作者:老紫竹

‘陆’ 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调用批处理相关的资料

热点内容
ie文件夹禁止访问 浏览:543
百川互联网程序员 浏览:781
linuxpython解释器 浏览:665
兴安得力软件加密狗 浏览:490
智能网络摄像头加密 浏览:574
软件毕业程序员培训 浏览:650
安卓陀螺仪低怎么办 浏览:247
一级建造师复习题集pdf 浏览:903
法理学pdf海默 浏览:390
服务器内存储器是用什么的 浏览:819
微帮同城分类信息源码 浏览:808
安卓系统ad是什么 浏览:471
python输出中不加占位符 浏览:596
linux文件夹权限控制 浏览:730
雅虎邮箱怎么加密码 浏览:819
为什么安卓手机登录不了苹果账号 浏览:537
如何复制usb加密狗 浏览:801
哪个app看你微笑时很美 浏览:908
mac启动命令 浏览:602
ngc服务器是什么的简称 浏览:75