【问题标题】:Java Showing Error NoSuchFileExceptionJava 显示错误 NoSuchFileException
【发布时间】:2017-02-24 10:48:15
【问题描述】:

我正在尝试为巡航控制系统开发一个 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());
     }
 }

【问题讨论】:

    标签: java exception-handling nosuchfileexception


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我的主要方法是:

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

      不,不是。您将 "commandLineArgs[0]" 作为参数传递。你的意思是commandLineArgs[0],不带引号。

      【讨论】:

        【解决方案3】:

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

        你能不能补充一下你是如何运行这个的。

        【讨论】:

        • @kushagra_mittal 我修改了我的问题并给出了主要方法
        • 我正在尝试用 eclipse 运行它
        • 你必须从 Eclipse 传递一个参数。转到运行配置。查找选项卡参数并在程序参数中传递一个参数。这将解决您的问题。如果您愿意,我可以发布相同的屏幕截图
        • 我有点java。你能解释一下我该怎么做吗
        • 右击你的java类,展开后会有一个Run As选项卡,你会看到运行配置。打开它并设置参数。让我发布一个截图,这样你会更清楚。
        猜你喜欢
        • 1970-01-01
        • 2012-12-25
        • 2016-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-02
        • 1970-01-01
        • 2019-04-29
        相关资源
        最近更新 更多