Title here
Summary here
Command-line arguments are a common way to parameterize execution of programs. For example, kotlin HelloWorld.kt uses HelloWorld.kt as an argument to the kotlin command.
import kotlin.system.exitProcess
fun main(args: Array<String>) {
// args provides access to raw command-line arguments.
// Note that args holds the arguments to the program.
val argsWithProg = listOf(System.getProperty("sun.java.command")) + args.toList()
val argsWithoutProg = args.toList()
// You can get individual args with normal indexing.
val arg = if (args.size > 2) args[2] else ""
println(argsWithProg)
println(argsWithoutProg)
println(arg)
}To experiment with command-line arguments it’s best to compile the Kotlin file to a JAR first.
$ kotlinc command-line-arguments.kt -include-runtime -d command-line-arguments.jar
$ java -jar command-line-arguments.jar a b c d
[command-line-arguments.jar a b c d]
[a, b, c, d]
cIn this Kotlin version:
args: Array<String> in the main function to access command-line arguments.System.getProperty("sun.java.command"), which gives us the JAR file name when executed.argsWithProg by combining the program name with the arguments.argsWithoutProg is simply the args converted to a list.args before accessing the third argument to avoid an IndexOutOfBoundsException.Note that in Kotlin, we don’t need to explicitly import standard library functions like println, as they’re available by default.
Next, we’ll look at more advanced command-line processing with command-line option parsing libraries in Kotlin.