如何得到.class位元組碼?
答:進入myclass.java 檔案所在目錄,執行 javac -d directorytoput\ myclass.java。表示編譯myclass.java類,生成myclass.class檔案放在directorytoput\目錄下。
如何運作.class檔案?
答:java執行jar包本質仍是執行.class檔案。直接執行指定class檔案可以用 java -classpath(等價于-cp) 路徑 含main函數的類名。注意隻要類名不要.class字尾。例子見圖1。
圖1 java -cp 指令
如果自己的.class有其他的依賴,可以在多個classpath之間用冒号分隔,如 java -cp ./lib/*:../lib/* mainclassname
如何得到jar?
答:eclipseide中,右擊項目名,導出為可執行jar包。
如何運作jar?
答:控制台運作。進入jar所在目錄, java-jar
xxx.jar 就可以啦,見圖2。
圖2 java -jar 指令
-d參數
用于給應用程式配置一些屬性。例:
java -d myconfig="d:/config/config.xml" myapp
這樣在myapp中就可以通過system.getproperty("myconfig");獲得這個值了。
xx.jar的結構是怎樣的?
答:可執行jar其實是個壓縮目錄,可以用2345好壓打開。裡面有manifest.mf文本檔案,它規定了程式的入口。裡面有一行(沒有也可以自己随便修改)main-class:,對應着要執行的.class檔案。此例中可以設定為main-class:
com.abc.hello。
jar包有兩種,一種放的是.class檔案,分布在相應的檔案夾中。另一種是.java源檔案,也分布在相應的檔案夾中。
網上的開源項目解壓後一般都有src檔案夾、含.class的xx.jar和含.java 的xx-source.jar。若沒有xx-source.jar而我們又想追蹤源碼,可以手動把src檔案夾壓縮為jar。
運作jar中指定的類。
java -cp xx.jar com.likeyichu.yourclass
用eclipse導出可執行jar包,有三個選項,見圖3。
圖3 可執行jar的打包選項
第一種:沒有我們的jar裡面沒有xx.jar,相當于全部解壓。
第二種:我們jar裡面有依賴的各種xx.jar。
第三種:我們的jar裡面隻有自己的源檔案,其他的打包到另一個檔案夾。之是以這樣還能運作,因為meta_inf檔案有配置classpath,見圖4.
圖4 meta_inf/manifest依賴環境說明
第三種最為靈活,因為很少改動依賴關系,而自己的代碼會經常修改。