#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. Откройте это и задайте аргумент. Позвольте мне опубликовать скриншот, чтобы вам было более понятно.