Как сделать функцию args равной 2? Как только выкидывает исключение File Not found - PullRequest
0 голосов
/ 25 марта 2020
/**
  *   Compilation  : javac Traversal.java
  *   Execution    : java Traversal args0 ----- GraphicsMode
  *                : java Traversal args0 args1 ----- TextMode
  *
  *   Arguments    : args0 - boardfilename.txt
  *                     args1 - movesfilename.txt
  *
  *   Controls     : h - left movement
  *                  l - right movement
  *                  j - down movement
  *                  k - up movement
  **/   
public static void main(String[] args) throws FileNotFoundException, InterruptedException {
        if (args.length == 1) {
            GameBoard board = Middleware.parseArgs(args[0]);
            Middleware.validateBoard(board);
            GraphicsMode.play(board);
        }else if (args.length == 2) {
            GameBoard board = Middleware.parseArgs(args[0]);
            Middleware.validateBoard(board);
            String moves = Middleware.readMoves(new Scanner(new File(args[1])));
            TextMode.play(board, moves);
        }
        exit();
    }

    /**
    * Sleep for 4000 microseconds to allow
    * the final event sound to finish
    * playing and then exits.
    */
    public static void exit() throws InterruptedException {
        Thread.sleep(4000);
        System.exit(0);
    }

1 Ответ

1 голос
/ 25 марта 2020

Как уже упоминалось в JavaDo c, вам нужно запустить эту программу из командной строки (окно cmd) следующим образом, если вы хотите, чтобы в программу были переданы два аргумента:

java Traversal args0 args1

где

args0 - boardfilename.txt                  
args1 - movesfilename.txt

Другими словами, запустите его как java Traversal boardfilename.txt movesfilename.txt из командной строки. Если boardfilename.txt и movesfilename.txt не находятся в том же месте, где находится Traversal.class, укажите их полные пути, например

java Traversal path-to-boardfilename.txt path-to-movesfilename.txt

Если вы выполняете его в затмении, щелкните правой кнопкой мыши Обход. java> Нажмите Запустить конфигурации ... > Поместите значения в диалоговое окно, как показано на скриншоте> Нажмите Выполнить

enter image description here

В этом случае (т.е. когда вы пытаетесь запустить его из затмения), убедитесь, что boardfilename.txt и movesfilename.txt находятся в родительской папке src.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...