Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从字符串创建路径对象_Java_Eclipse_Io_Path_Nio - Fatal编程技术网

Java 无法从字符串创建路径对象

Java 无法从字符串创建路径对象,java,eclipse,io,path,nio,Java,Eclipse,Io,Path,Nio,我将遵循Oracle.com上的基本I/O教程,但在创建路径对象时遇到了困难: Path p1 = Paths.get("/tmp/foo"); 这就产生了错误: error: The method get(URI) in the type Paths is not applicable for the arguments (String). 我在Linux上工作,在EclipseKepler上工作。我正在尝试访问当前目录中的文本文件。使用扫描器和文件,我可以处理文件,但我还想摆弄文件的路径

我将遵循Oracle.com上的基本I/O教程,但在创建路径对象时遇到了困难:

Path p1 = Paths.get("/tmp/foo");
这就产生了错误:

error: The method get(URI) in the type Paths is not applicable for the arguments (String).
我在Linux上工作,在EclipseKepler上工作。我正在尝试访问当前目录中的文本文件。使用扫描器和文件,我可以处理文件,但我还想摆弄文件的路径,以便继续教程

编辑:整个程序如下所示。下半部分是我作为一名新手,确认文件存在/有效。当我注释掉路径定义时,我得到了“Test”的输出,它位于“save.txt”文件中:

package projectSARA;
import java.util.*;
import java.io.*;
import java.net.URI;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {

public static void main(String[] args) {

    String saveFile = "save.txt";
    Path p1 = Paths.get(saveFile);
    Path p2 = Paths.get("save.txt");

    File file = new File(saveFile);
    try{
    Scanner in = new Scanner(file);
    String test = in.next();
    System.out.println(test);
    }
    catch(FileNotFoundException e){
        System.out.println("File not found");
    }
}// end main

}
附加:我以前问过这个问题,被要求编辑。我加入了编辑,等了几天,但没有更多的回应。我应该以某种方式更新它,还是联系评论的作者?我对Stack Exchange非常陌生,但非常感谢大家的努力。

path.get(“/some/path”)
是一个有效的方法调用。如果代码与您发布的一样,这可能是一个带有Eclipse意图的bug。您的错误
类型路径中的方法get(URI)…
不是javac错误,而是Eclipse错误

您的类相当简单,因此请尝试使用javac或Eclipse以外的其他IDE编译它,看看是否有编译错误。

在您的行中:

Path p1 = Paths.get("/tmp/foo");
您正在使用字符串,而get方法需要URI

首先将您的路径定义为URI

URI uri = null;
try {
    uri = new URI("file:///myFile.txt");  
             }
Path file=Paths.get(uri);
路径p1=Path.get(“/tmp/foo”)

where path.get只接受URI参数,因此我们需要提供

Path dir = Paths.get(new URI("/tmp/foo"));

我想,它会解决您的问题。

您的代码应该可以工作,但这里有一个简单的解决方法:

Paths.get("save.txt", "");

这将迫使系统使用基于字符串的get方法而不是URI。

将JRE更改为java 7将解决此问题。在Eclipse上,转到项目属性->构建路径->库->选择JRE系统库->单击编辑->将执行环境更改为jdk 7。现在您可以将字符串传递到path.get()。

这是编译时错误还是运行时错误?这在使用Netbeans、Java 7和Mac OSAlso的Eclipse开普勒4.3.2和Java 7和Mac OSPaths中对我有效。get(…)调用Path.of(…),所以我会调用后者。请看,实际上有两个方法,另一个接受字符串。这是一个编译问题,因为在Eclipse之外运行.jar时会报告:java-jar mine.jar异常在线程“main”java.lang中。错误:未解决的编译问题:类型路径中的方法get(URI)不适用于参数(字符串)