Dr. Michael Petter 7 лет назад
Родитель
Сommit
3a67c41e5a

+ 6 - 4
jplag.frontend.java-1.9/src/main/java/jplag/java19/JavacAdapter.java

@@ -4,6 +4,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.Arrays;
 
 import javax.tools.Diagnostic;
 import javax.tools.DiagnosticCollector;
@@ -71,10 +72,11 @@ public class JavacAdapter {
 		final SourcePositions positions = trees.getSourcePositions();
 		CompilationUnitTree last = null;
 		for (final CompilationUnitTree ast : asts) {
-			Path absolute = Paths.get(ast.getSourceFile().getName());
-			Path base = Paths.get(dir.getName());
-			Path relative = base.relativize(absolute);
-			final String filename = relative.toString();
+			final String filename;
+			if (dir==null)
+				filename=ast.getSourceFile().getName();
+			else
+				filename=dir.toURI().relativize(ast.getSourceFile().toUri()).toString();
 			final LineMap map = ast.getLineMap();
 			last=ast;
 			ast.accept(new TreeScanner<Object,Object>() {

+ 1 - 1
jplag.frontend.java-1.9/src/main/java/jplag/java19/Parser.java

@@ -12,7 +12,7 @@ public class Parser  extends jplag.Parser {
 		errors = 0;
 		File pathedFiles[] = new File[files.length];
 		for (int i = 0; i < files.length; i++) {
-			pathedFiles[i]=new File(dir,files[i]);
+			pathedFiles[i]=new File(dir,files[i]); 
 		}
 		JavacAdapter javac = new JavacAdapter();
 		errors += javac.parseFiles(dir,pathedFiles,this);