javabat
‘壹’ java 运行bat文件并弹出CMD窗口
publicstaticvoidmain(String[]args)throwsIOException{
Desktop.getDesktop().open(newFile("d:/abc.bat"));
}
最简单的
Runtime.getRuntime().exec("cmd.exe/CstartD:\abc.bat");
解决不弹框只需要“start”后面加一个参数“/b”就行:
‘贰’ java的bat是什么
.bat一般是批处理程序的后缀。
是把在Windows操作系统下DOS界面的命令, 按执行顺序写成一个.bat文件,然后双击这个 文件就可以执行所有写入的DOS命令。 比如你写个 shutdown -s 然后保存为.bat双击 就会关机,跟在DOS界面输入这个命令效果一 样。
‘叁’ JAVA执行BAT文件,请求高手帮助。。。。
我当时解决的办法是。
p.getOutputStream()
p.getErrorStream()
都不停地往外读取内容。
原因是这样的,bat命令输出的内容会输出到一块缓冲区内存中。
如果你不及时读取出来,当缓冲区内存满了以后,
bat命令会停止执行。
所以办法就是要把执行bat命令的输出内容读取出来,不能让缓冲区满。
‘肆’ java怎么调用bat,并传参数
java可使用Runtime.exec执行bat文件,示例代码如下:
import java.io.*;
import java.util.*;
public class TestExec {
public void runbat(int name) {
String cmd = "cmd /c start D:/bat/"+name+".bat";
try {
Process ps = Runtime.getRuntime().exec(cmd);
System.out.println(ps.getInputStream());
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
public static void main(String[] args){
TestExec test1 = new TestExec ();
test1.runbat("abc");
}
}
其中,abc.bat可以是已经存在的bat,也可以是动态生成的bat(如果需要根据已有参数执行bat,则可以使用动态生成bat文件的方式)
‘伍’ Java打开bat
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.LinkedList;
publicclassCommand{
privatejava.lang.Processp;
privateInputStreamis;
privateOutputStreamos;
privateBufferedWriterbw;
privateBufferedReaderbr;
privateProcessBuilderpb;
privateInputStreamstdErr;
publicCommand(){
}
//获取Process的输入,输出流
publicvoidsetCmd(Stringcmd){
try{
p=Runtime.getRuntime().exec(cmd);
os=p.getOutputStream();
is=p.getInputStream();
stdErr=p.getErrorStream();
}catch(IOExceptione){
System.err.println(e.getMessage());
}
}
//向Process输出命令
publicvoidwriteCmd(Stringcmd){
try{
bw=newBufferedWriter(newOutputStreamWriter(os));
bw.write(cmd);
bw.newLine();
bw.flush();
bw.close();
}catch(Exceptione){
e.printStackTrace();
}
}
//读出Process执行的结果
publicStringreadCmd(){
StringBuffersb=newStringBuffer();
br=newBufferedReader(newInputStreamReader(is));
Stringbuffer=null;
try{
while((buffer=br.readLine())!=null){
sb.append(buffer+" ");
}
System.out.println(p.waitFor());
}catch(Exceptione){
e.printStackTrace();
}
returnsb.toString();
}
//将命令一股脑塞入list中
publicLinkedList<String>doCmd(LinkedList<String>lists){
LinkedList<String>list=newLinkedList<String>();
for(Strings:lists){
writeCmd(s);
list.add(readCmd());
}
returnlist;
}
publicstaticvoidmain(String[]args){
Commandcmd=newCommand();
cmd.setCmd("cmd");
cmd.writeCmd("d:\stock.xmld:\backStock.xml");
System.out.println(cmd.readCmd());
//LinkedList<String>list=newLinkedList<String>();
//list.add("dir/b");
//list=cmd.doCmd(list);
//for(Strings:list){
//System.out.print(s);
//}
}
}
‘陆’ 怎么在java中运行bat命令
@echo off
echo 正在加密,请稍后....
echo path:%~dp0
set base=%~dp0
set class=%base%in
set libs=%base%lib
set
class_path=%class%;%libs%c3p0-0.9.1.2.jar;%libs%mysql-connector-java-5.0.8-bin.jar;
java -classpath %class_path% com.test.Main
@pause
文件结构图:
classes目录是java编译后的class目录
libs目录存放的所要使用到的jar
startNet.bat为我们启动的bat文件
‘柒’ bat运行java文件
在window下bat批处理文件调用实现java方法。
代码如下:
@echo off
echo 正在加密,请稍后....
echo path:%~dp0
set base=%~dp0
set class=%base%\bin
set libs=%base%\lib
set class_path=%class%;%libs%\c3p0-0.9.1.2.jar;%libs%\mysql-connector-java-5.0.8-bin.jar;
java -classpath %class_path% com.test.Main
@pause
classes目录是java编译后的class目录
libs目录存放的所要使用到的jar
startNet.bat启动的bat文件
‘捌’ java调用bat文件传入参数,急,急,急!
java好像不能直接给bat文件传参数,不过你可以先生成一个你需要的bat文件,再去执行这个bat文件,我就是这么做的,给你写了个例子,你参考下(你先在d盘下建一个text.txt)
public class DelFile {
public void creatBat(String command){
FileWriter fw=null;
try {
fw=new FileWriter("D:\\del.bat");
fw.write(command);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}finally{
if(fw!=null){
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}
}
}
}
private String execute(String batname){
Process process;
String line = null;
StringBuffer sb=new StringBuffer();
try {
process = Runtime.getRuntime().exec(batname);
InputStream fis = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
if(process.waitFor()!=0){
System.out.println("fail");
return "fail";
}
System.out.println(batname+" run successful!");
return "success";
} catch (Exception e) {
e.printStackTrace();
return "fail";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DelFile df=new DelFile();
df.creatBat("del D:\\text.txt");
df.execute("D:\\del.bat");
}
}
‘玖’ Java中如何调用bat,并传入参数
如果能动态指定bat文件中参数更好。例如: 1.bat中> java -cp Chart2D这里有调用windows程序的例子,你可以参考一下,就在调用的地方吧你的bat文件
‘拾’ java.bat是什么意思有什么作用怎么用
.bat一般是批处理程序的后缀。所谓批处理就是把在Windows操作系统下DOS界面的命令,按执行顺序写成一个.bat文件,然后双击这个文件就可以执行所有写入的DOS命令。
比如你写个 shutdown -s 然后保存为.bat双击就会关机,跟在DOS界面输入这个命令效果一样。