Posted on 2007-03-13 08:57
Matthew Chen 閱讀(351)
評論(0) 編輯 收藏
java是OOP時代的新寵兒,它有著其他語言無法替代的魅力,正是這種魅力是著無數的程序員趨之若鷲,與此同時存在著一些菜鳥如我之流,常常因為寫了一點小小的程序而無法發布急得如熱鍋上的螞蟻。下面是一點點關于發布java程序的知識。希望能夠滿足諸位的發布欲望。
當然,我在這里所謂的發布java程序,是指非applet,java severlet,jsp等程序的發布,而是指有frame,可以單獨運行(指需要java虛擬環境)。
眾所周知,java需要在他的虛擬環境運行,這樣是java的跨平臺的基礎,同時也增加了使用者的困窘。要想運行java程序必須建立一個運行環境,其實這并不困難,從sun的網站下載一個即可,安裝也沒有什么特殊之處。不過這些都不是開發者所考慮的問題,我象前文提到的諸位菜鳥包括我之內都沒有考慮過把這個java的環境也發布給用戶,我們想的知識把文件打包,用戶點擊某個文件即可運行對吧。所以我們學要考慮的是一個classpath的問題。classpath對于初學者是一個比較麻煩的問題,http://www.csdn.net/develop/article/15/15971.shtm是一片好的文章,但是我還是建議初學者使用一些編輯工具,而不要像我這樣使用notepad好多天,這樣可以省掉好多關于classpath的煩惱。在這里我推薦eclipse,這是個比較好的工具(當然在你不使用盜版的JBuilder等的情況下),同時完全免費可以在www.eclipse.org下載。使用這一平臺可以隨心所欲的創建包,而不必關心環境變量的問題。但是它不能解決發布的問題。
我曾經找到一個帖子,說把class打包成jar文件就可以讓用戶直接運行,http://expert.csdn.net/Expert/topic/1995/1995651.xml?temp=.6288721可是我卻如何也運行不起來,不過這個帖子也有很多幫助,可以讓我在這里不必多費口舌向各位描述如何打包。當然如果你和我一樣使用elipse就不用關心這個問題,記得在打包時選擇mainclass就可以了。
現在我們已經知道如何打包了,這樣我們就有了一個jar文件名字就叫haha.jar,并且這個文件可以通過java -jar haha.jar運行,這樣我們只需在寫一個bat文件就可以了。這個bat文件的內容只有這么一句java -jar haha.jar。這樣我們就不必關心用戶的設置了。只要點擊bat文件就可以運行你寫的程序了。
步驟總結:
1、開發程序
2、打成jar的包
3、寫bat文件
4、把jar文件和bat文件放在一起壓縮成zip或者其他格式
5、放在網絡以供他人下載。
Java的普通應用程序中,必須含有一個可被外界(通常是java解釋器)所直接調用的類,我們可以把這個類稱為該應用程序的主類。
建立Java的應用程序
1:main成員函數
Java的普通應用程序中,必須含有一個可被外界(通常是java解釋器)所直接調用的類,我們可以把這個類稱為該應用程序的主類,而這個主類必須含有main成員函數,整個應用程序就是從這個成員函數開始執行的,這與C程序有一定的類似之處。
main成員函數的說明如下:
public static void main(String args[]);
2:命令行參數
我們把main成員函數的參數args稱為命令行參數,args可以用來接收外界傳給Java應用程序的參數,下面我們舉一個例子來看看參數傳遞的具體過程:?
?? public class DrwRect
?? {
????? public static void main(String args[])
???? {
??????? class Rectangle
??????? {
??????????? int width,height,area;
??????????? public Rectangle(int w,int h)
??????????? {
???????????????? width=w;
???????????????? height=h;
???????????????? area=getArea(w,h);
??????????? }
??????????? protected int getArea(int w,int h)
??????????? {
???????????????? int a;
???????????????? a=w*h;
???????????????? return a;
??????????? }
??????????? public void drawRect()
??????????? {
???????????????? int i,j;
???????????????? for(i=width;i>0;i--)
?????????????????? System.out.print("#");
???????????????? System.out.print("") ;
???????????????? for(i=height-2;i>0;i--)
?????????????????? System.out.print("#");
???????????????? for(j=width-2;i>0;j--)
?????????????????? System.out.print("");
???????????????? System.out.print("#");
???????????????? for(i=width;i>0;i--)
?????????????????? System.out.print("#");
???????????????? System.out.print("");
??????????? }
??????? } //Rectangle
??????? int w=Integer.valueOf(args[0]).intValue();
??????? int h=Integer.valueOf(args[1]).intValue();
??????? Rectangle myrect=new Rectangle(w,h);
??????? myrect.drawRect();
???? }
?? }
用Javac編譯該程序后,可以用java解釋器來執行它,具體過程如下:
javac doRect.java
java doRect 2 3
注意這里的“2 3”就是命令行參數,它將被賦給DrwRect的main成員函數的args變量。其中args[0]的值為“2”,args[1]的值為“3”,Integer.valueOf(Stringstring).intValue的功能是把string中的數字轉化為一個整型值。