advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : Using Program Parameters in Java :

2. Parse

Next step is parsing the arguments:

String[] myArgs = 
  { "-file", "data.log", "-user", "hansen", "jensen", "-verbose"};

CommandLineParser parser = new BasicParser();
CommandLine cmd = null;

try {
  cmd = parser.parse(options, myArgs);
} catch (ParseException e) {
  System.out.println("***ERROR: " 
    + e.getClass() + ": " 
    + e.getMessage());
  return; //or System.exit(-1) 
}

The ParseException may be thrown if a required option is missing or an undefined option is found. If CLI throws an Exception then it would be nice to write out the proper syntax of the command. This can be done like this:

} catch (ParseException e) {
  System.out.println("***ERROR: " 
    + e.getClass() + ": " 
    + e.getMessage());
  HelpFormatter formatter = new HelpFormatter();
  formatter.printHelp( "parameters:", options );
  return;
}
  • 3. Interrogate

    The results of the parsing may now be found in the CommandLine object.

    if (cmd.hasOption("file")) 
      System.out.println("file specified: " + 
      cmd.getOptionValue("file"));
    else 
      System.out.println("-file not entered");
    
    if (cmd.hasOption("user")) 
      System.out.println("user specified: " + 
      Arrays.asList(cmd.getOptionValues("user")));
    else 
      System.out.println("-users not entered");
    
    if (cmd.hasOption("verbose")) 
      System.out.println("verbose specified: " + 
      cmd.getOptionValue("verbose"));
    else 
      System.out.println("-verbose not entered");
    

    If the rest of the program is coded and then run you will see this printed out:

    file specified: data.log
    user specified: [hansen, jensen]
    verbose specified: null
    

    The "null" value shows that the "verbose" option does not take any arguments.

    Warning: CLI also stores the results of the parsing in the Option objects, so don't reuse an object or parse the same object twice.

    Let me finish by mentioning a few useful features in CLI:

  • an option may have both a short name and a long name
  • you may specify arguments without preceding them with specific names (use getArgs to get the arguments from the CommandLine object). The sequence of such arguments is therefore important.
  • you may also specify key-value pairs in java property-style: key=value. An example is given later on in the article.

    Use the JavaDoc to see which other features are available for defining options and handling the parsed results. On the CLI website there's also a link to some Usage Scenarios, but note that the samples contain a few bugs. The worst is the "Java Property Example" where hasArg() should be replaced with hasArgs().

    Use the Jakarta Commons mailing list to find out more information. There's no specific mailing list for CLI.

    CLI is an active project at Jakarta Commons. I've been told by John Keyes, part of the team developing CLI, that a beta of a new version, CLI2, is slated for availability in late April.

    In the download (see the Resources section at the end of the article) you'll find a class, TryCLI1, which may be used to write out the contents of an Options and a CommandLine instance. It's useful when experimenting with CLI. See the main method for documentation.

    How to Add Java Applets to Your Site

    New on the Java Boutique:

    New Review:

    Time Management Made Easy with the Quartz Enterprise Job Scheduler
    Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

    New Applet:

    Reverse Complement
    Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

    Elsewhere on internet.com:

    WebDeveloper Java
    Lots of Java information on webdeveloper.com

    WDVL Java
    Thorough Java resource at the Web Developer's Virtual Library.

    ScriptSearch Java
    Hundreds of free Java code files to download.

    jGuru: Your View of the Java Universe
    Customizable portal with online training, FAQs, regular news updates, and tutorials.

  •  Avaya DevConnect Center
     Service Component Architecture/Service Data Objects Solution Center
     Intel Go Parallel Portal
     Internet.com eBook Library
     IBM Software Construction Toolbox
     Microsoft RIA Development Center
     Destination .NET
    XML error: not well-formed (invalid token) at line 53
    advertisement
    Receive Articles via our XML/RSS feed
    Receive Articles via our XML/RSS feed

    JavaBytes
    Internet Cyclone
    This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

    Latest Linux Hits Networking Flaws
    Metasploit 3.2 Offers More 'Evil Deeds'
    'Thank You Apple. Seriously.'
    The Buzz: BlackBerry App Store Seen Next
    Is .NET on Linux Finally Ready?
    Red Hat Takes on HPC Market, Microsoft
    Python's New Release Bridges the Gap
    No Flash Seen on iPhone Horizon
    Apple Yields to Complaints Over iPhone NDA
    Microsoft Shows Some Ankle With Visual Studio

    Use Explicit Conversion Functions to Avert Reckless Implicit Conversions
    Polyglot Programming: Building Solutions by Composing Languages
    Automated testing for .NET by Ben Hall
    "Supply Chain" SOA with SKOS
    Service Component Architecture in Real Life
    C++Ox: The Dawning of a New Standard
    Getting Started with Virtualization
    Master Complex Builds with MSBuild
    eCryptfs: Single-File Encryption in Linux
    CCXML in Action: A CCXML Auto Attendant

    Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



    JupiterOnlineMedia

    internet.comearthweb.comDevx.commediabistro.comGraphics.com

    Search:

    Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

    Jupitermedia Corporate Info


    Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

    Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

    Solutions
    Whitepapers and eBooks
    IBM Whitepaper: Innovative Collaboration to Advance Your Business
    Internet.com eBook: Real Life Rails
    Avaya Article: Call Control XML - Powerful, Standards-Based Call Control
    Tripwire Whitepaper: Seven Practical Steps to Mitigate Virtualization Security Risks
    Internet.com eBook: The Pros and Cons of Outsourcing
    Go Parallel Article: Scalable Parallelism with Intel(R) Threading Building Blocks
    Internet.com eBook: Best Practices for Developing a Web Site
    IBM CXO Whitepaper: The 2008 Global CEO Study "The Enterprise of the Future"
    Avaya Article: Call Control XML in Action - A CCXML Auto Attendant
    Go Parallel Article: James Reinders on the Intel Parallel Studio Beta Program
    IBM CXO Whitepaper: Unlocking the DNA of the Adaptable Workforce--The Global Human Capital Study 2008
    Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
    Go Parallel Article: Getting Started with TBB on Windows
    HP eBook: Storage Networking , Part 1
    MORE WHITEPAPERS, EBOOKS, AND ARTICLES
    Webcasts
    Go Parallel Video: Intel(R) Threading Building Blocks: A New Method for Threading in C++
    HP Video: Is Your Data Center Ready for a Real World Disaster?
    Microsoft Partner Portal Video: Microsoft Gold Certified Partners Build Successful Practices
    HP On Demand Webcast: Virtualization in Action
    Go Parallel Video: Performance and Threading Tools for Game Developers
    Rackspace Hosting Center: Customer Videos
    Intel vPro Developer Virtual Bootcamp
    HP Disaster-Proof Solutions eSeminar
    HP On Demand Webcast: Discover the Benefits of Virtualization
    MORE WEBCASTS, PODCASTS, AND VIDEOS
    Downloads and eKits
    Microsoft Download: Silverlight 2 Software Development Kit Beta 2
    30-Day Trial: SPAMfighter Exchange Module
    Red Gate Download: SQL Toolbelt
    Iron Speed Designer Application Generator
    Microsoft Download: Silverlight 2 Beta 2 Runtime
    MORE DOWNLOADS, EKITS, AND FREE TRIALS
    Tutorials and Demos
    IBM IT Innovation Article: Green Servers Provide a Competitive Advantage
    Microsoft Article: Expression Web 2 for PHP Developers--Simplify Your PHP Applications
    Featured Algorithm: Intel Threading Building Blocks - parallel_reduce
    MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES