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

          主站蜘蛛池模板: 汽车| 太仆寺旗| 嘉禾县| 新田县| 黑龙江省| 广饶县| 邯郸市| 芦山县| 隆尧县| 兴宁市| 乌鲁木齐市| 玛多县| 五大连池市| 晋江市| 祁东县| 汉川市| 太仓市| 孙吴县| 青田县| 南京市| 乌兰县| 永宁县| 普宁市| 三亚市| 佛山市| 郧西县| 涟水县| 昭觉县| 夏津县| 沁水县| 盈江县| 茌平县| 藁城市| 河池市| 肃南| 临海市| 耒阳市| 峨眉山市| 福清市| 泗水县| 安阳市|