我需要从命令行解析信息,所以我选择 args4j 库。命令行格式:ls [-l] [-h] [-r] [-o output.file] directory_or_file。
我试图创建选项然后解析。当我只得到“-ls”时,输出是正确的,但是当我得到“-ls -l”(超过1个参数)时,程序不会停止,我可以在命令行上输入,直到我强行停止程序。我将不胜感激任何帮助!
public class Settings {
@Option(name = "-ls", usage = "Init command")
var command = false
@Option(name = "-l", usage = "Long flag")
var longFlag = false
@Option(name = "-h")
var humanReadable = false
@Option(name = "-r")
var reversed = false
}
fun main() {
val settings = Settings()
val parser = CmdLineParser(settings)
var args = mutableListOf<String>()
val input = readLine()
parser.parseArgument(input)
print("${settings.command} ${settings.longFlag}")