【问题标题】:java.nio.file not workin in java 8java.nio.file 在 java 8 中不起作用
【发布时间】:2017-11-04 23:57:30
【问题描述】:

我有以下代码:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
public class debugImageMain {
    public static void main() throws IOException {
        Path path = Paths.get("path/to/file");
        byte[] data = Files.readAllBytes(path);
    }
}

但是当我跑步时,我得到:

线程“主”java.lang.NoSuchMethodException 中的异常: pdc.conversor.debugImageMain.main([Ljava.lang.String;) 在 java.lang.Class.getMethod(Class.java:1786)

javac -version 给出:javac 1.8.0_60,我有 java VERSION 8 Update 91。

IntelliJ 告诉我 java.nio.file 导入带有红色下划线,并显示“在配置的语言级别上不可用的 API 用法。

请帮忙???

【问题讨论】:

  • 不行,你的主要方法不正确;)应该是public static void main(String[] args) throws IOException {
  • 在“项目结构”中,您可能选择了 Java 6(或更低)作为您的语言级别,而不是 Java 8,因此出现了警告。
  • 请贴出完整的错误信息
  • 堆栈跟踪清楚地表明java.nio.file 与它完全无关。
  • "java.nio.file not working in java 8" ... Java 已经 20 岁了。它的库多年来一直在不断发展。它需要一种特殊形式的傲慢来断定您编写的程序中的错误必须存在于 Java 库中......而不是您编写的代码中。

标签: java intellij-idea


【解决方案1】:

Java 要求正确定义 main 方法,这是运行应用程序的入口点。

试试:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
public class debugImageMain {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("path/to/file");
        byte[] data = Files.readAllBytes(path);
    }
}

【讨论】:

  • 顺便说一句,Java 命名约定是类名以大写开头。
  • 你是对的......我的错......感谢关于大会的建议。
【解决方案2】:

问题不在于java.nio.file,问题在于main签名的定义。

  • 在 Java 中运行程序的唯一方法是使用特定的 public static void main (String [] args) 签名。

要修复您当前的语句,请更改以下内容:

public static void main() throws IOException {

为此:

public static void main (String[] args) throws IOException {

查看这些条目 firstsecond

【讨论】:

  • 它起作用了......正如 IntelliJ 用红色下划线的 java.nio.file 一样,它让我相信问题就在那里......但这是一个复杂的不同问题。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 2012-06-25
  • 2013-05-10
  • 2014-08-19
相关资源
最近更新 更多