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