以下代码中出现编译错误,我不知道如何解决。
public class Test throws IOException{
public static void main(String[] args) {
String path = "document.txt";
File file = new File(path);
Files.readString(file.toPath()); //cannot find symbol method readString(java.nio.file.Path)
}
}
但我知道
错误:(8,14)java:找不到符号
符号:方法readString(java.nio.file.Path)
位置:类java.nio.file.Files
有很多事情要注意。
readString(Path)
中的java.nio.file.Files
。如果我尝试使用size(Path)
(java.nio.file.Files
中的另一种方法),它会起作用此代码在intelliJ中不起作用,但在eclipse中起作用
如果我在intelliJ中创建了一个新项目,但在我从github克隆的当前Maven项目中却没有此代码,则此代码有效
我尝试了所有建议here,包括:
Test.java
答案 0 :(得分:3)
Files.readString(Path)
是Java 11中引入的。看来您的安装仍在Java 8上。
首先通过在“项目设置/项目”下设置正确的SDK和语言级别,确保您的项目使用Java 11。
如果这不起作用,请确保已安装IntelliJ的JDK 11版本。单击IntelliJ download page上下载按钮右侧的小向下角,即可在IntelliJ下载页面上的JDK 8和JDK 11版本之间进行选择。
答案 1 :(得分:1)
与Lindstorm和Axel答案相同,问题出在您的Java版本配置错误。您可能使用与JDK 11不同的源/目标版本来构建源代码(至少对于Files :: readString)。我使用上述方法解决了这个问题。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
我在maven插件maven-compiler-plugin
的{{1}}部分中添加了代码。如果您没有此部分(例如,使用spring boot run),请将其添加到pom.xml configuration
区域。
答案 2 :(得分:0)
问题确实与Java版本有关,但与SDK或语言级别无关。
解决该问题的方法是转到文件>设置>构建>编译器> Java编译器。然后,我将项目字节码版本更改为11,并删除了设置为10的“每个模块字节码版本”条目。
答案 3 :(得分:0)
在更改@Lindstorm 提到的项目字节码版本后,intelliJ 在编译时仍然显示错误。我执行了以下操作以确保选择了正确的(修改后的)配置。
.idea
文件。这将确保 IntelliJ 选择将 Project Bytecode Version 更改为 JDK 11。