就像c要有主程序main()一样,这是程序run的切入口
如果不是独立的可运行程序就不要main了。

解决方案 »

  1.   

    1。main表示是程序的入口。
    2。args是程序在命令下运行时用户给的参数(不包括类名,这点与c++不同)
    3。public:表示这个方法可被任意调用,没有存取权限的限制。
    4。 定义为static,表示这个方法即使没有类的实例都能够执行。
    这4点保证了这个函数成为程序的入口
      

  2.   

    这些我都懂,我只是觉得每个java程序都有这句话,那怎么有的要输入参数而有的不要呢?这不是乱套了吗?请有耐心的人跟我讲一讲。
      

  3.   

    liaomingxue() 说的全对。
    java就是这么规定入口函数的,必须满足这样条件的函数才能是入口函数。
    另外我们常常将不是入口的类加上了main方法,主要是便于调试和给使用该类的使用者以提示。
      

  4.   

    你们说的我也知道啊,可是我们在编译程序的时候有的是 
    java  类名    有的是java  类名  参数 我现在的问题就是,两种不同的编译方式,它们的不同在程序中是怎么体现呢?难道是因为程序中都有public static void main(String args[])这么一句话吗?那么你是怎么知道这个程序编译的时候需要加参数,而别的不需要呢?请赐教!
    --------------------------------------------------------------------------
    我是在这个程序中发现这样的问题的,代码如下:
    import java.io.*;
    import java.net.*;public class Client {
    public static void main(String args[]) {
    try{

    if (args.length != 1){
    System.out.println("USAGE: java Client servername");return;}
    String connectto= args[0];
    Socket connection;
    // connect to server
    if(connectto.equals("localhost")){
    connection=new Socket(InetAddress.getLocalHost(),5000);
    System.out.println(InetAddress.getLocalHost());}
    else{
    connection=new Socket(InetAddress.getByName(connectto),5000);
    }
    DataInputStream input=new DataInputStream(connection.getInputStream());// read information from server
    String info;
    info = input.readUTF();
    System.out.println(info);
    connection.close();
    }
    catch(SecurityException e){
    System.out.println("SecurityException when connecting Server!");
    }
    catch(IOException e){
    System.out.println("IOException when connecting Server!");
    }
    }} 
      

  5.   

    还有一个实际的问题,阿土仔,你说要是  java  类名  参数  的这种要是在JCreator或者JBuilder里面编译的话,怎么输入参数,在哪里输入啊?谢了
      

  6.   

    if (args.length != 1){
        System.out.println("USAGE: java Client servername");这里不是提示你怎么用吗?
    jb里在启动项run里的Application Parameters里设置启动参数
      

  7.   

    没有啊,你那个是jb几啊,我的是jb7,我每个项都找了,都没有找到啊。