java是OOP时代的新宠儿,它有着其他语言无法替代的魅力,正是这种魅力是着无数的程序员趋之若鹫,与此同时存在着一些菜鸟如我之流,常常因为写了一点小小的程序而无法发布急得如热锅上的蚂蚁。下面是一点点关于发布java程序的知识。希望能够满足诸位的发布欲望。

当然,我在这里所谓的发布java程序,是指非applet,java severlet,jsp等程序的发布,而是指有frame,可以单独运行(指需要java虚拟环境)。

众所周知,java需要在他的虚拟环境运行,这样是java的跨平台的基础,同时也增加了使用者的困窘。要想运行java程序必须建立一个运行环境,其实这并不困难,从sun的网站下载一个即可,安装也没有什么特殊之处。不过这些都不是开发者所考虑的问题,我象前文提到的诸位菜鸟包括我之内都没有考虑过把这个java的环境也发布给用户,我们想的知识把文件打包,用户点击某个文件即可运行对吧。所以我们学要考虑的是一个classpath的问题。classpath对于初学者是一个比较麻烦的问题,是一片好的文章,但是我还是建议初学者使用一些编辑工具,而不要像我这样使用notepad好多天,这样可以省掉好多关于classpath的烦恼。在这里我推荐eclipse,这是个比较好的工具(当然在你不使用盗版的JBuilder等的情况下),同时完全免费可以在www.eclipse.org下载。使用这一平台可以随心所欲的创建包,而不必关心环境变量的问题。但是它不能解决发布的问题。

我曾经找到一个帖子,说把class打包成jar文件就可以让用户直接运行,可是我却如何也运行不起来,不过这个帖子也有很多帮助,可以让我在这里不必多费口舌向各位描述如何打包。当然如果你和我一样使用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中的数字转化为一个整型值。