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. 閱讀(18765) 評論(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 阿嬌
          學習學習!  回復  更多評論
            

          主站蜘蛛池模板: 星子县| 上饶县| 青州市| 田阳县| 英吉沙县| 大埔区| 江源县| 巍山| 巴彦淖尔市| 遵义市| 宜川县| 安龙县| 宁陕县| 滦南县| 噶尔县| 酒泉市| 循化| 雅安市| 卓尼县| 渝北区| 合江县| 祁门县| 永昌县| 新昌县| 清水县| 新津县| 新河县| 屯昌县| 陈巴尔虎旗| 芷江| 安乡县| 西城区| 新宁县| 当雄县| 潞城市| 根河市| 无为县| 太康县| 南丰县| 全南县| 五大连池市|