Repository: quarkusio/quarkus
Issue: Cannot start a mutable-jar built under Windows 10 in docker-container with QUARKUS_LAUNCH_DEVMODE=true

**Describe the bug**
When a mutable-jar, that was build on windows 10, is copied to a docker-container and started with  `QUARKUS_LAUNCH_DEVMODE=true`, the container terminates by throwing a `java.lang.ClassNotFoundException`.

**Expected behavior**
Container starts and can be used in conjunction with `quarkus:remote-dev`.

**Actual behavior**
Container terminates on startup with the following stack trace:

```
Exception in thread "main" java.lang.ClassNotFoundException: io.quarkus.deployment.mutability.DevModeTask
        at java.base/java.net.URLClassLoader.findClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at io.quarkus.bootstrap.runner.DevModeMediator.doStart(DevModeMediator.java:49)
        at io.quarkus.bootstrap.runner.DevModeMediator.doDevMode(DevModeMediator.java:29)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:34)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:24)
```
**To Reproduce**
- Checkout `https://github.com/turing85/quarkus-mutablejar-win10-bug`
- Compile project, start docker-container:

      mvnw clean install -Dquarkus.container-image.build=true && docker run quarkus-bug/hello-app:1.0.0

**Configuration**

**Environment (please complete the following information):**
 - Output of `uname -a` or `ver`: `Microsoft Windows [Version 10.0.19041.685]`
 - Output of `java -version`: 

       openjdk 11.0.4 2019-07-16
       OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
       OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)

 - GraalVM version (if different from Java): N/A
 - Quarkus version or git rev:  `1.10.3.Final`
 - Build tool (ie. output of `mvnw --version` or `gradlew --version`): 

       Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
       Maven home: C:\\Users\\Marco\\.m2\\wrapper\\dists\\apache-maven-3.6.3-bin\\1iopthnavndlasol9gbrbg6bf2\\apache-maven-3.6.3
       Java version: 11.0.4, vendor: AdoptOpenJDK, runtime: D:\\Java\\AdoptOpenJDK\\jdk-11.0.4.11-hotspot
       Default locale: en_GB, platform encoding: Cp1252
       OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"


Changed files:
core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
independent-projects/bootstrap/app-model/src/main/java/io/quarkus/bootstrap/model/PersistentAppModel.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java b/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
index 24997cddd86..b6b337bdc00 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
@@ -599,7 +599,8 @@ private JarBuildItem buildThinJar(CurateOutcomeBuildItem curateOutcomeBuildItem,
                 Map<AppArtifactKey, List<String>> relativePaths = new HashMap<>();
                 for (Map.Entry<AppArtifactKey, List<Path>> e : copiedArtifacts.entrySet()) {
                     relativePaths.put(e.getKey(),
-                            e.getValue().stream().map(s -> buildDir.relativize(s).toString()).collect(Collectors.toList()));
+                            e.getValue().stream().map(s -> buildDir.relativize(s).toString().replace("\\\\", "/"))
+                                    .collect(Collectors.toList()));
                 }
 
                 //now we serialize the data needed to build up the reaugmentation class path
diff --git a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/bootstrap/model/PersistentAppModel.java b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/bootstrap/model/PersistentAppModel.java
index 4ef5aeb91f1..5a0efa6bd7b 100644
--- a/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/bootstrap/model/PersistentAppModel.java
+++ b/independent-projects/bootstrap/app-model/src/main/java/io/quarkus/bootstrap/model/PersistentAppModel.java
@@ -9,10 +9,11 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * A representation of AppModel, that has been serialized to disk for an existing application.
- *
+ * <p>
  * This needs a slightly different representation than AppModel
  */
 public class PersistentAppModel implements Serializable {
@@ -35,7 +36,7 @@ public PersistentAppModel(String baseName, Map<AppArtifactKey, List<String>> pat
         this.baseName = baseName;
         this.userProvidersDirectory = userProvidersDirectory;
         appArtifact = new SerializedDep(appModel.getAppArtifact(), paths);
-        appArtifact.paths = Collections.singletonList(appArchivePath);
+        appArtifact.paths = Collections.singletonList(appArchivePath.replace("\\\\", "/"));
         deploymentDeps = new ArrayList<>(appModel.getDeploymentDependencies().size());
         for (AppDependency i : appModel.getDeploymentDependencies()) {
             deploymentDeps.add(new SerializedDep(i, paths));
@@ -100,7 +101,11 @@ public SerializedDep(AppArtifact dependency, Map<AppArtifactKey, List<String>> p
             super(dependency.getGroupId(), dependency.getArtifactId(),
                     dependency.getClassifier(), dependency.getType(),
                     dependency.getVersion());
-            this.paths = paths.get(dependency.getKey());
+            List<String> pathList = paths.get(dependency.getKey());
+            if (pathList == null) {
+                pathList = Collections.emptyList();
+            }
+            this.paths = pathList.stream().map(s -> s.replace("\\\\", "/")).collect(Collectors.toList());
         }
 
         public SerializedDep(AppDependency dependency, Map<AppArtifactKey, List<String>> paths) {