【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
生活随笔
收集整理的這篇文章主要介紹了
【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- Java 文件生成 Windows 系統(tǒng) .bat 批處理文件并自動(dòng)執(zhí)行
- 1、生成 bat 腳本注意事項(xiàng)
- 2、Java 執(zhí)行 Cmd 命令
- 3、完整代碼示例
- 4、執(zhí)行結(jié)果
Java 文件生成 Windows 系統(tǒng) .bat 批處理文件并自動(dòng)執(zhí)行
1、生成 bat 腳本注意事項(xiàng)
在 Windows 中生成 bat 腳本時(shí) , 必須輸出 gb2312 編碼的字符串 , 否則執(zhí)行時(shí)會(huì)出現(xiàn)中文亂碼 ;
另外還要注意 , WIndows 中的換行時(shí) \r\n , 不要忽略這個(gè)問(wèn)題 , 否則也會(huì)出錯(cuò) ;
【錯(cuò)誤記錄】Windows 系統(tǒng) bat 腳本報(bào)錯(cuò) ( Java 生成 bat 腳本亂碼處理 | 輸出 GB2312 字符串 | Windows 中的換行時(shí) \r\n )
2、Java 執(zhí)行 Cmd 命令
使用 Runtime.getRuntime().exec 執(zhí)行 Cmd 命令 ; 通過(guò) BufferedReader 讀取執(zhí)行過(guò)程中的輸出信息 ;
3、完整代碼示例
import java.io.*;public class Main {public static void main(String[] args) throws Exception {File bat = new File("cmd.bat");OutputStreamWriter osw =new OutputStreamWriter((new FileOutputStream("cmd.bat")),"gb2312");osw.write("echo 生成 BAT 腳本\r\n");osw.write("echo 執(zhí)行命令\r\n");osw.close();String ret = excuteCmdCommand("cmd.bat");System.out.println(ret);}/*** 執(zhí)行 cmd 命令* @param cmdCommand* @return*/public static String excuteCmdCommand(String cmdCommand){StringBuilder stringBuilder = new StringBuilder();Process process = null;try {process = Runtime.getRuntime().exec(cmdCommand);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));String line = null;while((line=bufferedReader.readLine()) != null){stringBuilder.append(line+"\n");}return stringBuilder.toString();} catch (Exception e) {e.printStackTrace();return null;}} }
4、執(zhí)行結(jié)果
執(zhí)行上述程序 , 執(zhí)行結(jié)果如下 :
總結(jié)
以上是生活随笔為你收集整理的【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【错误记录】Windows 系统 bat
- 下一篇: 【Binder 机制】Native 层