我當時解決的辦法是。
市中ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
p.getOutputStream()
p.getErrorStream()
都不停地往外讀取內容。
原因是這樣的,bat命令輸出的內容會輸出到一塊緩沖區(qū)內存中。
如果你不及時讀取出來,當緩沖區(qū)內存滿了以后,
bat命令會停止執(zhí)行。
所以辦法就是要把執(zhí)行bat命令的輸出內容讀取出來,不能讓緩沖區(qū)滿。
java可使用Runtime.exec執(zhí)行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,也可以是動態(tài)生成的bat(如果需要根據已有參數執(zhí)行bat,則可以使用動態(tài)生成bat文件的方式)
public static void main(String[] args) {
try {
String command = "C:\\Users\\Administrator\\Desktop\\do.bat";
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(),"GBK"));//注意中文編碼問題
String line;
while ((line = br.readLine()) != null) {
System.out.println("StartedLog=="+line);
}
br.close();
} catch (IOException e) {
}
}
自己試試吧,不知道可行不可行.
建議你用java
ANT
先寫一個ANT的
BUILD.XML
(網上自己找下)
然后寫腳本
a.bat
ant
-v
然后執(zhí)行a.bat就行了
(2)
或者直接在BAT里寫
JAVAC
*.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運行 bat 執(zhí)行bat
本文網址:http://m.newbst.com/article0/doojjio.html
成都網站建設公司_創(chuàng)新互聯,為您提供做網站、微信公眾號、靜態(tài)網站、外貿網站建設、服務器托管、網站收錄
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯