BaNg@taobao

          Just Do It!

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            20 Posts :: -1 Stories :: 202 Comments :: 0 Trackbacks

          一般在Windows的軟件大部分安裝在c:\ Program Files下面,比如我機器上的Java位置就是C:\Program Files\Java\jdk1.5.0_12,假如如果你在批處理中調用java或者javaw,會這么寫:

          set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
          set EXE_JAVA=%JAVA_HOME%\bin\java
          %EXE_JAVA% -version

          那樣會報告一個錯誤:
          'C:\Program' 不是內部或外部命令,也不是可運行的程序
          或批處理文件。


          以前為了避免這種問題,會把把JDK挪到c:\,但不是一個通用的解決辦法,現在可以采用兩種方式來解決:

          1 加上引號,表示一個完整路徑,這個在好多服務器批處理中常用到比如jboss,  tomcat。
          set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
          set EXE_JAVA="%JAVA_HOME%"\bin\java
          %EXE_JAVA% -version

          2 轉成短路徑,這個我認為是最好的解決辦法。
          set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
          for %x in ("%JAVA_HOME%") do set JAVA_HOME=%~sx
          set EXE_JAVA=%JAVA_HOME%\bin\java
          %EXE_JAVA% -version

          需要注意的是,在批處理文件比如 run.bat 中,上面的for語句的變量有兩個%%號。
          for %%x in ("%JAVA_HOME%") do set JAVA_HOME=%%~sx

          另:如果只是想得到固定帶空格的短路徑,有一個快捷方法,使用cmd定位到某個目錄,輸入 debug 啟動x86虛模式調試,然后quit推出,那么cmd的路徑就變成短路徑了,如下圖





          posted on 2008-04-23 15:04 Always BaNg. 閱讀(18764) 評論(10)  編輯  收藏 所屬分類: Java 、網摘備用

          Feedback

          # re: windows批處理中對帶空格路徑的處理 2008-04-23 15:29 lvq810
          C:盤一般只裝系統文件  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-04-23 16:49 阿里
          僅對已存路徑有效。  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-04-23 17:03 Always BaNg.
          @阿里
          能告訴僅對已存路徑有效是什么意思?或許有些東西需要改進,望不嗇賜教!  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理[未登錄] 2008-04-23 17:12 啊光
          用雙引號就好了.  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-04-23 17:58 隔葉黃鶯
          我一般都是用雙引號的  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-04-24 15:07 懶人
          像jdk這樣的還是默認安裝路徑比較好  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-06-07 15:40 ever
          如果是for循環中有空格如果處理呢  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-11-17 00:58 huzza
          非常感謝!!!  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-11-17 01:02 huzza
          我有一個程序,路徑中含有空格,如果使用引號來包括路徑,程序就會crash;使用樓主的方法--也就是使用短路徑,就不會有問題.多謝!  回復  更多評論
            

          # re: windows批處理中對帶空格路徑的處理 2008-11-29 17:31 阿嬌
          學習學習!  回復  更多評論
            

          主站蜘蛛池模板: 泗阳县| 扬州市| 商都县| 灌云县| 绥德县| 江北区| 修文县| 女性| 馆陶县| 宝兴县| 武城县| 绵阳市| 轮台县| 恩施市| 平舆县| 郴州市| 信丰县| 东阿县| 潜山县| 原平市| 玉田县| 兴文县| 安福县| 嘉义市| 资溪县| 策勒县| 申扎县| 凌海市| 安塞县| 海安县| 丽江市| 尚义县| 临沭县| 左贡县| 乌恰县| 木兰县| 郸城县| 罗定市| 永福县| 灵山县| 万安县|