From 8b92f319822bd9feea75bf3ff37b126f8a4b1ebd Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 24 Dec 2015 17:46:18 -0800 Subject: [PATCH] Fix Retrolambda for Windows. Note: this file is now in its own repo, will delete it soon. --- .../kobalt/plugin/retrolambda/RetrolambdaPlugin.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/plugin/retrolambda/RetrolambdaPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/retrolambda/RetrolambdaPlugin.kt index 0486cb72..05fb509d 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/retrolambda/RetrolambdaPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/retrolambda/RetrolambdaPlugin.kt @@ -12,6 +12,7 @@ import com.beust.kobalt.misc.RunCommand import com.google.inject.Inject import com.google.inject.Singleton import java.io.File +import java.nio.charset.Charset /** * Run Retrolambda on the classes right after "compile". This plug-in automatically downloads and uses @@ -55,11 +56,16 @@ class RetrolambdaPlugin @Inject constructor(val dependencyManager: DependencyMan project.compileDependencies) .map { it.jarFile.get() - } + classesDir).joinToString(File.pathSeparator) + } + classesDir).joinToString("\n") + + // Use retrolambda.classpathFile instead of retrolambda.classpath to avoid problems + // with file path separators on Windows + val classpathFile = File.createTempFile("kobalt-", "") + classpathFile.writeText(classpath, Charset.defaultCharset()) val args = listOf( - "-Dretrolambda.inputDir=" + classesDir, - "-Dretrolambda.classpath=" + classpath, + "-Dretrolambda.inputDir=" + classesDir.replace("\\", "/"), + "-Dretrolambda.classpathFile=" + classpathFile, "-Dretrolambda.bytecodeVersion=${config.byteCodeVersion}", "-jar", JAR.jarFile.get().path)