java最難學的就是角落的東東了,不愧叫做java平台。搜尋了一把總算明白了。
直接運行 .class的方法 java -cp . com.network.Chat , 不用加.class尾碼
從eclipse中export 的jar file,僅僅是把.class打包了。所以執行這種jar file需要用 java -cp .;ch04.jar com.thnkjava.ch04, 如果你還應用到另外的lib庫,你必須在cp裡說明,也就是 java -cp .;ch04.jar;lib01.jar;lib02.jar com.thnkjava.ch04 來執行。事實上可以發現ch04.jar也在cp裡面,說明ch04.jar就是lib庫,最後的參數指明了要被執行的類名。
如果從eclipse裡export出的是 runnable jar file,那麼個執行這個jar包的時候是不需要指明哪個類的,直接這樣執行 java -jar ch04.jar。原因就是jar包中的MANIFEST.MF內容不同。 runnable jar包中指明哪個類先執行,所以你可以用 java -jar ch04.jar來執行你想要執行的代碼,而不必指明具體哪個類。這個你可以開啟 jar包查看MANIFEST.MF的區別,一目瞭然。
產生runnable jar file時,有兩個選項,Extract required libraries into generated JAR 和 package equired libraries into generated JAR。 前者是把你用到的.class 檔案提取出來,後者則是把你所需要的所有jar包都打進一個包裡。兩者的MANIFEST.MF檔案內容也有所不同,這應該是eclipse造成的,IDE 做了自己的事情,具體就不研究了。
http://download.oracle.com/javase/tutorial/deployment/jar/appman.html