比如写了一个程序为mywork,运行的时候想在后面加上一个操作参数"-operation",请问这个参数在程序中该怎么获得,我想根据这个参数的不同进行不同的操作。

解决方案 »

  1.   

    class Hello{
    public static void main(String[] args)
    {
    System.out.println("args[0] = " + args[0]); }
    }调用时 >Hello World
    输出为 >args[0] = World依此类推:args[] 是个字符串数组,以空格分隔
    >Hello Big World;
    此时args[0] = Big;
    args[1] = World;
      

  2.   


    public static void main( String[] args )
    {
    checkArgs( args );
    } private static void checkArgs( String[] args )
    {
    if( args == null || args.length == 0 )
    {
    //无参数运行
    return;
    }
    int num = args.length;
    MakeSourceFilesToolkit toolkit;
    switch( num )
    {
    case 1://一个参数
    doSomethin( args[0] );
    return;
    case 2://两个参数
    doSomething( args[0], args[1]);
    break;
    case 3://三个参数
    doSomethin( args[0], args[1], args[2]);
    default://参数错误
    println( "Arguments error!" );
    return;
    }
    }
      

  3.   

    直接加在后面就可以吧,比如
    java edu.scofield.rmi.client.HelloClient start
      

  4.   

    public static void main(String[] args)
    这是主程序的入口,其中main函数就带着形参,这个形参显然是一个String数组,如果你的程序名为Test
    当输入
    Test 1 2 3 4 ... n时那么系统就会自动的把1到n当成字符串付给args数组
    如下public class Test
    {
    public static void main(String[] args)
    {
       int length = args.length;   //注意是length不是length()
       for(int i  =  0; i < length ; i ++)
       {
           System.out.println(args[i]);
       }
    }
    }
    ===============================
    javac Test.java
    java Test 1 2 3 4 5 6 7 8 9 10 11 12
    ========================================
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      

  5.   

    参数。。
    我只会在命令控制台的那种。eclipse中还不会,因为他都给自动运行了。
    javac Test.java   1 2 3 
    在程序中想要得到也很简单啊。
    比如像这三个参数1 2 3
    在程序中就可以这么得到。
    int i = Integer.parseInt(args[0]); -----------------------------------------依次类推就得到了。
    因为在控制台输入的都是作为字符串传入,所以如果数据类型不是字符串就要转换下。根据参数的不同进行不同的操作可以用 :
          switch(Integer.parseInt(args[0]){            }
    只有得到了。怎么用都行了。
    不知道lz是不是想要这个意思。 
      

  6.   

    我使用下面的语句,为什么每次只能把最后一个参数?
    for (int i=0; i<args.length; i++){
        System.out.println("the commend is :"+args[i]);
    }
      

  7.   

    我这个是在eclipse里面做的,应该是9楼哥们说的自动加行的问题
      

  8.   

    应该不会吧。这样应该能得到。。
    由于csdn的延迟,导致我刚才多发了一条。
      

  9.   

    for(int i=0;i<args.length;i++)
    {
    if(args[i].equalsIgnoreCase("a"))
    {
    //执行内容或是调用什么什么方法
    }else if(args[i].equalsIgnoreCase("b"))
    {
    //执行内容或是调用什么什么方法
    }
    }
    你就在编译时  java mywork.java a或b  就行了
      

  10.   

    运行:java YourMainClass 参数1 参数2 "带空格  的参数3" 参数4
    获取:public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
      

  11.   

    不太明白楼主的意思,
    要是命令行传入java mywork * * *
    在eclipes中run—>run—>Arguments(写参数) —>run
    如果是方法调用在()里指明就行了
      

  12.   

    我是带着参数运行程序,当参数为start的时候,启动一个线程,不断运行,当参数为stop的时候则这个线程关闭,这个该怎么做的