「java调用bat」java调用bat文件传参
本篇文章给大家谈谈java调用bat,以及java调用bat文件传参对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java 程序中调用bat文件的方法代码?
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RunBat {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("D:\\run.bat");
BufferedReader read = new BufferedReader(new InputStreamReader(process.getInputStream()));
String str = null;
while ((str = read.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
java执行bat文件问题
Process process=
Runtime.getRuntime().exec("cmd /c run.bat");//要执行的文件的路径为run.bat
// 得到输入流
InputStream inputStream=process.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
// 得到输出流
OutputStream outputStream=process.getOutputStream();
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);
bufferedWriter.write("dd\n");
bufferedWriter.flush();
String temp=null;
while((temp=bufferedReader.readLine())!=null)
{
System.out.println(temp);
}
}
java调用bat,卡死在某一步
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) throws IOException {
Process p = Runtime.getRuntime().exec("cmd /c D:\\a.bat");
InputStream fis = p.getInputStream();
final BufferedReader br2 = new BufferedReader(new InputStreamReader(p.getErrorStream()));
InputStreamReader isr = new InputStreamReader(fis);
final BufferedReader br = new BufferedReader(isr);
Thread t1 = new Thread(){
public void run(){
String line = null;
try {
while ((line = br2.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
Thread t2 = new Thread(){
public void run(){
String line = null;
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
t1.start();
t2.start();
}
}
这样写就没问题了,API里有写:Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, and even deadlock.因为本地进程输入输出缓存有限,找不到TaReport会导致stderr输出,你不快点读取的话Process就挂在那了。
下面是输出 :
******************************************
TAReport Start, wait for a moment please!!!
******************************************
java.lang.NoClassDefFoundError: TaReport
Caused by: java.lang.ClassNotFoundException: TaReport
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: TaReport. Program will exit.
Report has been sent, please check mail box!!!
Exception in thread "main"
怎么在java中运行bat命令
@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文件传参、java调用bat的信息别忘了在本站进行查找喔。
发布于:2022-12-10,除非注明,否则均为
原创文章,转载请注明出处。