test/jdk/tools/jpackage/share/LicenseTest.java
branchJDK-8200758-branch
changeset 58418 7cd20dbeee36
parent 58416 f09bf58c1f17
child 58648 3bf53ffa9ae7
--- a/test/jdk/tools/jpackage/share/LicenseTest.java	Mon Sep 30 19:33:13 2019 -0400
+++ b/test/jdk/tools/jpackage/share/LicenseTest.java	Mon Sep 30 20:16:48 2019 -0400
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -87,7 +88,20 @@
     public static void testCommon() {
         new PackageTest().configureHelloApp()
         .addInitializer(cmd -> {
-            cmd.addArguments("--license-file", LICENSE_FILE);
+            Path licenseCopy = TKit.workDir().resolve(LICENSE_FILE.getFileName()).toAbsolutePath().normalize();
+            Files.copy(LICENSE_FILE, licenseCopy,
+                    StandardCopyOption.REPLACE_EXISTING);
+            final Path basePath = Path.of(".").toAbsolutePath().normalize();
+            try {
+                licenseCopy = basePath.relativize(licenseCopy);
+            } catch (IllegalArgumentException ex) {
+                // May happen on Windows: java.lang.IllegalArgumentException: 'other' has different root
+                TKit.trace(String.format(
+                        "Not using relative path to license file for --license-file parameter. Failed to relativize [%s] at [%s]",
+                        licenseCopy, basePath));
+                ex.printStackTrace();
+            }
+            cmd.addArguments("--license-file", licenseCopy);
         })
         .forTypes(PackageType.LINUX)
         .addBundleVerifier(cmd -> {