Missing scheme (IllegalArgumentException) while us

2020-07-06 06:10发布

问题:

this is a really simple java question. I am using Java 8 with eclipse kepler on a linux system. I've been trying to try out NIO.2. My code is:

package lucasTest;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.*;

public class Lucas {
    public static void main(String[] args) throws URISyntaxException{
        URI u = new URI("./Lucas.java");
        Path p = Paths.get(u);  
    }
}

I get the following error:

Exception in thread "main" java.lang.IllegalArgumentException: Missing scheme
    at java.nio.file.Paths.get(Paths.java:134)
    at lucasTest.Lucas.main(Lucas.java:10)

Please help!

Thanks, Lucas

回答1:

Your uri declaration is missing the scheme for files (file:///):

u = new URI("file:///./Lucas.java");
Path p = Paths.get(u);          

should work. As an alternative you can try

 Path p2 = Paths.get(".", "Lucas.java");