Java показывает ошибку NoSuchFileException

#java #exception-handling #nosuchfileexception

#java #обработка исключений #исключение nosuchfileexception

Вопрос:

Я пытаюсь разработать Java-приложение для системы круиз-контроля. Но у меня проблема в отсутствии такого исключения файла. Поскольку я немного новичок в Java-кодировании. Я не уверен, почему возникает эта проблема. Мой код-

  public static void main(String[] commandLineArgs) throws IOException {
    Path input_path = Paths.get(commandLineArgs[0]);
    List<InputState> input_states = StateInput.input_states_from_file(input_path);
    Timer timer = new Timer(new CruiseControlSystem());
    List<OutputState> output_states = timer.pulse_from_input(input_states);
    for (OutputState s : output_states){
        System.out.println(s.format());
    }
}
 

И ошибка, которую я обнаружил, —

 Exception in thread "main" java.nio.file.NoSuchFileException: commandLineArgs[0]
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.spi.FileSystemProvider.newInputStream(Unknown Source)
at java.nio.file.Files.newInputStream(Unknown Source)
at java.nio.file.Files.newBufferedReader(Unknown Source)
at java.nio.file.Files.readAllLines(Unknown Source)
at StateInput.input_states_from_file(StateInput.java:31)
at CommandLine.main(CommandLine.java:23)
 

Мой основной метод —

 public static void main(String[] commandLineArgs) throws IOException {
    Path input_path = Paths.get(commandLineArgs[0]);
    List<InputState> input_states = StateInput.input_states_from_file(input_path);
    Timer timer = new Timer(new CruiseControlSystem());
    List<OutputState> output_states = timer.pulse_from_input(input_states);
    for (OutputState s : output_states){
        System.out.println(s.format());
     }
 }
 

изображение конфигурации запуска

Ответ №1:

В текстовом поле Program Arguments у вас в настоящее время есть «commandLineArgs [0]«. Вам необходимо изменить «commandLineArgs [0]» на путь к вашему файлу, содержащему входные состояния. Что-то вроде «/data/ input-states«.

введите описание изображения здесь

Ответ №2:

Мой основной метод:

 Path input_path = Paths.get(commandLineArgs[0]);
 

Нет, это не так. Вы передаете "commandLineArgs[0]" в качестве аргумента. Вы имеете в виду commandLineArgs[0] , без кавычек.

Ответ №3:

Вы не передаете никаких аргументов в метод main во время запуска программы.

Можете ли вы также добавить, как вы это выполняете.

Комментарии:

1. @kushagra_mittal Я изменил свой вопрос и дал основной метод

2. Я пытаюсь запустить это с помощью eclipse

3. Вы должны передать один аргумент из eclipse. Перейдите к запуску конфигураций. Найдите аргументы табуляции и передайте один аргумент в аргументах программы. Это решит вашу проблему. Если вы хотите, я могу опубликовать скриншот для того же

4. Я немного разбираюсь в Java. Не могли бы вы объяснить мне, как я могу это сделать

5. Щелкните правой кнопкой мыши на вашем классе java, появится вкладка Run, как при развертывании, которую вы увидите run configuration. Откройте это и задайте аргумент. Позвольте мне опубликовать скриншот, чтобы вам было более понятно.