- 
    Bug 
- 
    Resolution: Not an Issue
- 
     P3 P3
- 
    None
- 
    9-repo-jigsaw
                    Create directory "classes" with exploded module m
modules/m/module-info.class
modules/m/p/D.class
invoke fm.setLocationFromPaths(StandardLocation.MODULE_PATH,classes);
you will get
java.lang.IllegalArgumentException: classes
at com.sun.tools.javac.file.Locations$ModulePathLocationHandler.checkValidModulePathEntry(jdk.compiler@9-internal/Locations.java:933)
at com.sun.tools.javac.file.Locations$ModulePathLocationHandler.setPaths(jdk.compiler@9-internal/Locations.java:912)
at com.sun.tools.javac.file.Locations.setLocation(jdk.compiler@9-internal/Locations.java:1548)
at com.sun.tools.javac.file.JavacFileManager.setLocationFromPaths(jdk.compiler@9-internal/JavacFileManager.java:807)
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
Path modules = base.resolve("modules");
Path classes = Files.createDirectories(base.resolve("classes"));
tb.writeJavaFiles(modules.resolve("m"), "module m { }", "package p; public class D { }");
tb.new JavacTask()
.options("-modulesourcepath",modules.toString())
.outdir(classes)
.files(modules.resolve("m/p/D.java"))
.run();
fm.setLocationFromPaths(StandardLocation.MODULE_PATH,classes);
            
modules/m/module-info.class
modules/m/p/D.class
invoke fm.setLocationFromPaths(StandardLocation.MODULE_PATH,classes);
you will get
java.lang.IllegalArgumentException: classes
at com.sun.tools.javac.file.Locations$ModulePathLocationHandler.checkValidModulePathEntry(jdk.compiler@9-internal/Locations.java:933)
at com.sun.tools.javac.file.Locations$ModulePathLocationHandler.setPaths(jdk.compiler@9-internal/Locations.java:912)
at com.sun.tools.javac.file.Locations.setLocation(jdk.compiler@9-internal/Locations.java:1548)
at com.sun.tools.javac.file.JavacFileManager.setLocationFromPaths(jdk.compiler@9-internal/JavacFileManager.java:807)
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
Path modules = base.resolve("modules");
Path classes = Files.createDirectories(base.resolve("classes"));
tb.writeJavaFiles(modules.resolve("m"), "module m { }", "package p; public class D { }");
tb.new JavacTask()
.options("-modulesourcepath",modules.toString())
.outdir(classes)
.files(modules.resolve("m/p/D.java"))
.run();
fm.setLocationFromPaths(StandardLocation.MODULE_PATH,classes);
- duplicates
- 
                    JDK-8150051 IllegalArgumentException: path too long for directory fm.setLocationFromPaths(StandardLocation.SYSTEM_MODULES,classes) -           
- Closed
 
-         
- relates to
- 
                    JDK-8150111 Need to change signature of StandardJavaFileManager.setLocationFromPaths -           
- Closed
 
-