看到一个例子程序。节选如下
  public static void main(String[] args) throws IOException {
  if ((args.length < 2) || (args.length > 3))  
      throw new IllegalArgumentException("Parameter(s): <Server> <Word> [<Port>]");    String server = args[0];      
    // Convert argument String to bytes using the default character encoding
    byte[] data = args[1].getBytes();    int servPort = (args.length == 3) ? Integer.parseInt(args[2]) : 7;
.......
}
这个例子小弟不明白,为什么main方法上来就判断args.length < 2) || (args.length > 3并抛出异常,这个时侯args长度肯定为0并且抛出异常。再就是为什么可以从agrs里取到 server ,data 和 servPort 。
谢谢大家

解决方案 »

  1.   

    这个程序运行时需要同时输入参数的

    java socket  127.0.0.1  8080
    socket是java编译后的class文件 127.0.0.1  和8080 就是2个参数
    并不是所有的程序都是java HelloWorld就行的
    有的是需要输入参数的
      

  2.   

    谢谢 在Eclipse里怎么操作呢?
      

  3.   


    你在eclipse运行下,这时候应该是让你输入参数的吧。没有的话 估计就是写死在配置文件里了
      

  4.   

    run - run congifurations - arguments - program arguments
    在输入框里可以写你的控制台参数
    例如在控制台上的命令是
    java 1 two 3
    你可以把 1 two 3 写在program arguments里
      

  5.   

    带命令行参数用IDE回很不方便的,换JDK+记事本吧,1.为什么main方法上来就判断args.length < 2) || (args.length > 3并抛出异常   这是要判断程序将来运行时用户输入的参数对不对,抛出异常是为了提示用户正确的参数格式。  2.再就是为什么可以从agrs里取到 server ,data 和 servPort    并不是你的程序能自动获得这些参数,而是你使用javac编译后  再用java命令运行程序时,JVM帮你传递的。