Java显示错误NoSuchFileException

时间:2016-10-14 22:12:57

标签: java exception-handling 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());
     }
 }

image of run configuration

3 个答案:

答案 0 :(得分:0)

程序参数文本框中,您当前有“ commandLineArgs [0] ”。您需要将“ commandLineArgs [0] ”更改为包含输入状态的文件路径。类似于“ / data / input-states ”。

enter image description here

答案 1 :(得分:0)

  

我的主要方法是:

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

不,不是。您正在传递"commandLineArgs[0]"作为参数。你的意思是commandLineArgs[0],没有引号。

答案 2 :(得分:-1)

运行程序时,您没有向main方法传递任何参数。

您还可以添加如何运行它。