譬如文件路徑: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編譯類文件有幫助。