The user enters command-line arguments when invoking the application
and specifies them after the name of the class to be run. For example,
suppose a Java application called Sort
sorts lines in a
file. To sort the data in a file named friends.txt
, a
user would enter:
java Sort friends.txt
String
s. In the previous example, the command-line
arguments passed to the Sort
application in an array that
contains a single String
: "friends.txt"
.
Echo
example displays each of its command-line arguments on a line by itself:
public class Echo { public static void main (String[] args) { for (String s: args) { System.out.println(s); } } }
Echo
.
User input is in italics.
java Echo Drink Hot Java Drink Hot Java
Drink
, Hot
, and Java
— on
a line by itself. This is because the space character separates
command-line arguments. To have Drink
, Hot
,
and Java
interpreted as a single argument, the user would
join them by enclosing them within quotation marks.
java Echo "Drink Hot Java" Drink Hot Java
String
argument that represents a number,
such as "34", to a numeric value.
Here is a code snippet that converts a command-line
argument to an int
:
int firstArg; if (args.length > 0) { try { firstArg = Integer.parseInt(args[0]); } catch (NumberFormatException e) { System.err.println("Argument must be an integer"); System.exit(1); } }
parseInt
throws a NumberFormatException
if
the format of args[0]
isn't valid. All of the
Number
classes — Integer
, Float
,
Double
, and so on — have parseXXX
methods that
convert a String
representing a number to an object of
their type.