<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)  編輯  收藏 所屬分類: 網上工具代碼
    主站蜘蛛池模板: 日韩精品无码免费专区网站| 成人片黄网站A毛片免费| 亚洲白嫩在线观看| 国产桃色在线成免费视频| 国产成人综合亚洲绿色| 亚洲精品无码久久千人斩| 国产成人午夜精品免费视频| 免费国产黄网站在线观看动图| 亚洲国产精品久久66| 国产精品视_精品国产免费| 美女内射无套日韩免费播放 | 亚洲中文无码卡通动漫野外 | 亚洲精品无码国产片| 国产国拍亚洲精品mv在线观看| 国产精品视频免费一区二区| 天黑黑影院在线观看视频高清免费 | 亚洲日韩涩涩成人午夜私人影院| 免费无码VA一区二区三区| 国产亚洲精品精品精品| 91亚洲自偷在线观看国产馆| 国产性爱在线观看亚洲黄色一级片| 成人免费毛片内射美女-百度| 中文字幕乱码一区二区免费| 曰批全过程免费视频免费看| 亚洲jjzzjjzz在线播放| 亚洲高清国产拍精品26U| 免费v片视频在线观看视频| 91成人免费观看网站| 免费精品一区二区三区第35| 无码的免费不卡毛片视频| 亚洲日韩精品A∨片无码加勒比| 久久夜色精品国产噜噜噜亚洲AV | 思思久久99热免费精品6| 亚洲国产精品综合久久20| 亚洲成人午夜在线| 红杏亚洲影院一区二区三区| 国产成人精品男人免费| 免费a级毛片高清视频不卡| 999久久久免费精品播放| 美女被免费网站91色| 国产伦精品一区二区免费|