Picses' sky

          Picses' sky
          posts - 43, comments - 29, trackbacks - 0, articles - 24

          java 應用程序的發布(轉)

          Posted on 2007-03-13 08:57 Matthew Chen 閱讀(357) 評論(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中的數字轉化為一個整型值。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 南丰县| 金坛市| 阿鲁科尔沁旗| 阳新县| 库尔勒市| 镇雄县| 天全县| 育儿| 乌兰县| 蒙阴县| 平泉县| 兰考县| 彭州市| 扎鲁特旗| 石门县| 开江县| 银川市| 黄大仙区| 林口县| 土默特左旗| 淮滨县| 云梦县| 莒南县| 金寨县| 凤山市| 丰台区| 合水县| 昆明市| 磐安县| 松江区| 兴义市| 海门市| 屏山县| 奈曼旗| 陇南市| 北京市| 嘉定区| 巴东县| 育儿| 藁城市| 佳木斯市|