<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-60  評論-35  文章-15  trackbacks-0

    由于工作中要使用Java調用4U Wma Mp3 Converter命令行將vox格式轉換成WMA格式,以方便在網頁中試聽,所以想到用java.lang.Runtime來處理這個問題。在使用過程中碰到了一些以前沒有留意的問題,整理如下:

    一 最簡單的調用方式
    String cmd="WMAMP3Converter.exe";
    java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
    總結:此方法,要求可執行文件在Tomcat的工作目錄中。一般的,程序安裝目錄都在Tomcat目錄之外,所以使用絕對路徑來替代以上方案。

    二 使用全路徑調用可執行文件
    String cmd="C:\\WMA\\WMAMP3Converter.exe";
    java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
    總結:此調用方式執行沒有問題,后來測試完成后部署到服務器上,發現問題又出來了,程序執行錯誤。分析原因,因為本地測試和服務器安裝路徑不同,服務器安裝軟件的目錄為C:\Program Files\4U Computing\WMA MP3 Converter\,這里路徑里有空格,造成空格處斷開,所以命令行無法正確截取參數。

    三 安全的全路徑方式調用執行文件
    String cmd="\"C:\\Program Files\\4U Computing\\WMA MP3 Converter\\WMAMP3Converter.exe\"";
    java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
    總結:在cmd串中,把可執行文件的全路徑用雙引號包含,就可以解決路徑、文件名中包含空格、全角字符等問題。

    程序運行一段時間以后,發現有時候程序執行完后轉換文件沒有,程序沒有錯誤,而且服務器上有很多進程沒有結束。原來調用可執行文件失敗了,但是程序不知道,以為成功了,然后繼續去找轉換后的文件來播放導致失敗。分析原因,是因為上面的方式異步的,也就是說java提交運行文件的命令以后,立即轉到播放模塊。
    解決辦法就是讓命令行同步方式執行,也就是主程序等待調用可執行文件結束以后再執行。(注:當然,播放之前檢查文件是否存在也是可以的,這里是說明同步異步的問題。)

    四 異步方式調用外部可執行文件
    Process process=null;
    String cmd="\"C:\\Program Files\\4U Computing\\WMA MP3 Converter\\WMAMP3Converter.exe\"";
    process = java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
    process.waitFor();
    總結:構造一個Process對象,將運行進程獲取過來,控制這個進程等待調用結束再繼續運行。OK。

    五 順便說一下,使用Process對象以后,可以用如下方法返回錯誤信息和輸出信息,來進一步控制進程運行。
    process.exitValue()
    process.getErrorStream()
    process.getInputStream()
    process.getOutputStream()

    posted on 2006-04-04 17:06 Q系列類、方法、變量…… 閱讀(734) 評論(0)  編輯  收藏 所屬分類: 網上工具代碼
    主站蜘蛛池模板: 国产精品亚洲专区无码牛牛| 成人免费黄色网址| 日本免费的一级v一片| 国产精品二区三区免费播放心 | 在线看片免费不卡人成视频 | 女人张开腿等男人桶免费视频| 亚洲av片一区二区三区| 亚洲天天做日日做天天欢毛片| jizzjizz亚洲日本少妇| 免费永久国产在线视频| 亚洲视频在线观看网站| 麻豆高清免费国产一区| 亚洲精品蜜桃久久久久久| 亚洲1区2区3区精华液| 免费一级做a爰片性色毛片| 五月天国产成人AV免费观看| 青青青国产在线观看免费网站 | 亚洲精品国自产拍在线观看| 亚洲a级成人片在线观看| 在线观看免费黄网站| 亚洲A∨精品一区二区三区| 久久嫩草影院免费看夜色| 亚洲男人天堂2017| 色婷婷7777免费视频在线观看 | 黄色免费网站网址| 中文字幕无码精品亚洲资源网久久| 日韩在线天堂免费观看| 国产精品无码永久免费888| 成人爱做日本视频免费| g0g0人体全免费高清大胆视频| 亚洲av日韩av激情亚洲| 成人免费ā片在线观看| 亚洲欧洲春色校园另类小说| 日韩免费视频在线观看| 成人免费区一区二区三区| 欧洲 亚洲 国产图片综合| 亚洲无码视频在线| 人成电影网在线观看免费| 亚洲人成在线播放网站岛国| 日韩免费一区二区三区| 久久er国产精品免费观看2|