为什么每个java程序都有public static void main(String args[])这句话,而有的就要在编译的时候加入参,有的就不需要呢?到底为什么啊? 就像c要有主程序main()一样,这是程序run的切入口如果不是独立的可运行程序就不要main了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1。main表示是程序的入口。2。args是程序在命令下运行时用户给的参数(不包括类名,这点与c++不同)3。public:表示这个方法可被任意调用,没有存取权限的限制。4。 定义为static,表示这个方法即使没有类的实例都能够执行。这4点保证了这个函数成为程序的入口 这些我都懂,我只是觉得每个java程序都有这句话,那怎么有的要输入参数而有的不要呢?这不是乱套了吗?请有耐心的人跟我讲一讲。 liaomingxue() 说的全对。java就是这么规定入口函数的,必须满足这样条件的函数才能是入口函数。另外我们常常将不是入口的类加上了main方法,主要是便于调试和给使用该类的使用者以提示。 你们说的我也知道啊,可是我们在编译程序的时候有的是 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 serverif(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 serverString 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!");}}} 还有一个实际的问题,阿土仔,你说要是 java 类名 参数 的这种要是在JCreator或者JBuilder里面编译的话,怎么输入参数,在哪里输入啊?谢了 if (args.length != 1){ System.out.println("USAGE: java Client servername");这里不是提示你怎么用吗?jb里在启动项run里的Application Parameters里设置启动参数 没有啊,你那个是jb几啊,我的是jb7,我每个项都找了,都没有找到啊。 java程序更新的问题 File类 问题 JVM对内存的管理,分成方法区,堆,栈,常量池,寄存器。那么方法区究竟是干吗的? java中设好的 传到jsp画面也是原样显示' ',怎样让他显示为空格? java中关于反复调用方法的问题 java 3d导入obj文件遇到的问题 !!高手请看这个有难度的问题!(不知道怎么写标题) 新手:关于java中package的问题!谢谢! 清华的ftp,谁知道! applet请教 一个很急的图形界面编程的问题 关于lastmodified()的问题
2。args是程序在命令下运行时用户给的参数(不包括类名,这点与c++不同)
3。public:表示这个方法可被任意调用,没有存取权限的限制。
4。 定义为static,表示这个方法即使没有类的实例都能够执行。
这4点保证了这个函数成为程序的入口
java就是这么规定入口函数的,必须满足这样条件的函数才能是入口函数。
另外我们常常将不是入口的类加上了main方法,主要是便于调试和给使用该类的使用者以提示。
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!");
}
}}
System.out.println("USAGE: java Client servername");这里不是提示你怎么用吗?
jb里在启动项run里的Application Parameters里设置启动参数