【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
生活随笔
收集整理的這篇文章主要介紹了
【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- Java 文件生成 Windows 系統 .bat 批處理文件并自動執行
- 1、生成 bat 腳本注意事項
- 2、Java 執行 Cmd 命令
- 3、完整代碼示例
- 4、執行結果
Java 文件生成 Windows 系統 .bat 批處理文件并自動執行
1、生成 bat 腳本注意事項
在 Windows 中生成 bat 腳本時 , 必須輸出 gb2312 編碼的字符串 , 否則執行時會出現中文亂碼 ;
另外還要注意 , WIndows 中的換行時 \r\n , 不要忽略這個問題 , 否則也會出錯 ;
【錯誤記錄】Windows 系統 bat 腳本報錯 ( Java 生成 bat 腳本亂碼處理 | 輸出 GB2312 字符串 | Windows 中的換行時 \r\n )
2、Java 執行 Cmd 命令
使用 Runtime.getRuntime().exec 執行 Cmd 命令 ; 通過 BufferedReader 讀取執行過程中的輸出信息 ;
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 執行命令\r\n");osw.close();String ret = excuteCmdCommand("cmd.bat");System.out.println(ret);}/*** 執行 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、執行結果
執行上述程序 , 執行結果如下 :
總結
以上是生活随笔為你收集整理的【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Windows 系统 bat
- 下一篇: 【开发环境】Windows 系统中使用