Picses' sky

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

java 应用程序的发布(转)

Posted on 2007-03-13 08:57 Matthew Chen 阅读(339) 评论(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中的数字转化为一个整型值。

只有注册用户登录后才能发表评论。


网站导航: