From ad5740488bdaed0336806a2e829c4321ec6af923 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 1 Feb 2026 01:08:51 +0100 Subject: [PATCH 1/3] Fix handling of paths containing spaces --- .../java/org/gradlex/javamodule/packaging/tasks/Jpackage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java b/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java index 2cb0d7d..0ce3d54 100644 --- a/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java +++ b/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java @@ -276,7 +276,7 @@ private void configureJPackageArguments(ExecSpec e, Directory resourcesDir) { private String createArgsFile(String modulePathAsPath) { Path argsFile = getTemporaryDir().toPath().resolve("args.txt"); List lines = new ArrayList<>(1); - lines.add("--module-path " + modulePathAsPath); + lines.add("--module-path \"" + modulePathAsPath + "\""); try { Files.write(argsFile, lines); } catch (IOException e) { From e851f514f5fd1be766e461d06c9d8a4fa93a0803 Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Mon, 16 Feb 2026 09:49:19 +0100 Subject: [PATCH 2/3] Normalize path characters --- .../java/org/gradlex/javamodule/packaging/tasks/Jpackage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java b/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java index 0ce3d54..3f7b174 100644 --- a/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java +++ b/src/main/java/org/gradlex/javamodule/packaging/tasks/Jpackage.java @@ -276,7 +276,7 @@ private void configureJPackageArguments(ExecSpec e, Directory resourcesDir) { private String createArgsFile(String modulePathAsPath) { Path argsFile = getTemporaryDir().toPath().resolve("args.txt"); List lines = new ArrayList<>(1); - lines.add("--module-path \"" + modulePathAsPath + "\""); + lines.add("--module-path \"" + modulePathAsPath.replace('\\', '/') + "\""); try { Files.write(argsFile, lines); } catch (IOException e) { From be1c582c737df7771fb8f54d7507427b4a507ffb Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Mon, 16 Feb 2026 10:44:22 +0100 Subject: [PATCH 3/3] Add test for path with spaces --- .../test/JavaModulePackagingOptionsTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/org/gradlex/javamodule/packaging/test/JavaModulePackagingOptionsTest.java b/src/test/java/org/gradlex/javamodule/packaging/test/JavaModulePackagingOptionsTest.java index 0ff1b5e..3156861 100644 --- a/src/test/java/org/gradlex/javamodule/packaging/test/JavaModulePackagingOptionsTest.java +++ b/src/test/java/org/gradlex/javamodule/packaging/test/JavaModulePackagingOptionsTest.java @@ -189,4 +189,20 @@ void can_build_package_in_one_step() { assertThat(build.appImageFolder().getAsPath()) .isDirectoryNotContaining(f -> f.toFile().isDirectory()); } + + @Test + void works_if_module_path_contains_spaces() { + var lib2BuildFile = build.file("lib 2 with spaces/build.gradle.kts"); + var lib2ModuleInfoFile = build.file("lib 2 with spaces/src/main/java/module-info.java"); + + build.settingsFile.appendText(""" + include(":lib2") + project(":lib2").projectDir = file("lib 2 with spaces") + """); + build.appBuildFile.appendText("dependencies { implementation(project(\":lib2\")) }"); + lib2BuildFile.writeText("plugins { id(\"java-library\") }"); + lib2ModuleInfoFile.writeText("module org.example.libtwo { }"); + + build.build(":app:jpackage"); + } }