天天看點

cmd指令中遇到檔案路徑中含有空格

譬如檔案路徑:C:\Program Files\Java\j2sdk-1_4_2_19\bin

使用絕對位址調用Java指令時會報錯:

E:\FSWorkSpace\learn\bin>C:\Program Files\Java\jdk1.6.0_45\bin\javap -c learn.Test

'C:\Program' 不是内部或外部指令,也不是可運作的程式

或批處理檔案。

E:\FSWorkSpace\learn\bin>%programfiles%\Java\jdk1.6.0_45\bin\javap -c learn.Test

'C:\Program' 不是内部或外部指令,也不是可運作的程式

或批處理檔案。

參考:http://zhidao.baidu.com/link?url=ujPCvtZhsaeSGebpiu6nBc1W9iSb9qjpdGaCjyN1KUppr2xdviwjqIxU2wAd8zSzmpfZTFoGSmKTPc3OpJM_7a

用DOS命名規則的縮寫方式,即超過8個字元的檔案名/檔案夾名,縮寫為前6個字母數字(如果前6個字母數字裡也有空格,就忽略空格,最終是真正的字母數字有6個),再接“~”号,再接數字1,如果有兩個檔案前6個字母縮寫下來完全一樣,就一個是~1,另一個是~2,至于哪個是~1哪個是~2,沒有細研究過。

使用

E:\FSWorkSpace\learn\bin>C:\Progra~1\Java\j2sdk-1_4_2_19\bin\javap -c learn.Test

Compiled from "Test.java"

public class learn.Test extends java.lang.Object{

public learn.Test();

  Code:

   0:   aload_0

   1:   invokespecial   #8; //Method java/lang/Object."<init>":()V

   4:   return

注:javap -c  類名 可以反編譯檢視.class檔案内容,對了解jvm編譯類檔案有幫助。