java - 如何在 Java 中使用带值的终端参数?

标签 java terminal arguments

对于我的学校项目,我正在为 iPhone 创建一个类似 Bad Apples 的游戏(不是我个人的选择,但这不是问题所在)。

游戏需要有两个版本,第一个在控制台中,第二个在 JavaFX 中。但我想更进一步。例如,我想添加用户可以在启动游戏时添加到终端的参数

java -jar BadApplesClone.jar --height=10 --width=10 --numPieces=5

然后我将处理所有引入的值并更改变量。

我正在使用 OpenJDK6,所以我现在这样做:

    for (int i=0; i<args.length; i++)
    {
        if (args[i].equals("--help"))
            throw new UnsupportedOperationException("Not yet implemented");

        if (args[i].equals("--largura"))
            throw new UnsupportedOperationException("Not yet implemented");

        if (args[i].equals("--altura"))
            throw new UnsupportedOperationException("Not yet implemented");

        if (args[i].equals("--pecas_inicio"))
            throw new UnsupportedOperationException("Not yet implemented");

        if (args[i].equals("--javafx"))
        {
            JavaFX javaFX = new JavaFX(ALTURA, LARGURA, PECAS_INICIO);
            javaFX.initJogo();
        }
    }

但我不知道如何处理像 --width=10 这样的值。我想到了一个枚举,但我真的不知道该怎么做。

任何人都可以向我解释实现此目标的方法吗?

最佳答案

回答你实际提出的问题......

args 数组的某些元素采用“--SOMETHING=ANOTHER”形式。

所以,您首先需要做的是:

if(args[x].startsWith("--SOMETHING")) { 

第二个问题是解析 ANOTHER。

args[x].split("=") 

是开始的地方。

关于java - 如何在 Java 中使用带值的终端参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745811/

相关文章:

variables - 试图了解如何将参数从 gradle 传递到我的 shell 脚本?

python - 如何将参数从 python 代码传递到 bash 脚本?

javascript - 替代 arguments.callee

java - 将队列顶部与数组列表元素进行比较

java - 如果不从已销毁的 Activity 中移除,监听器是否会造成内存泄漏?

java - 我的 LinkedList 的 set 方法有什么问题

java - 在 JSch 中使用 ChannelSftp 传输文件夹和子文件夹?

git - 如何删除 GitHub 上的子模块?

python - python脚本中的os.system命令导致错误

terminal - 终端/zsh/terminfo 中的应用模式是什么?