I have my microservices fat-jars in a folder name containing "#" in its name. It worked fine with Spring Boot 3.1.5 and 3.1.6, but now on Spring Boot 3.2.0 I got following error:

Exception in thread "main" java.lang.IllegalStateException: Unable to create JarFileArchive URL
        at org.springframework.boot.loader.net.protocol.jar.JarUrl.create(JarUrl.java:77)
        at org.springframework.boot.loader.net.protocol.jar.JarUrl.create(JarUrl.java:61)
        at org.springframework.boot.loader.net.protocol.jar.JarUrl.create(JarUrl.java:51)
        at org.springframework.boot.loader.launch.JarFileArchive.getNestedJarUrl(JarFileArchive.java:100)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.zip.ZipFile$EntrySpliterator.tryAdvance(ZipFile.java:558)
        at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at org.springframework.boot.loader.launch.JarFileArchive.getClassPathUrls(JarFileArchive.java:90)
        at org.springframework.boot.loader.launch.ExecutableArchiveLauncher.getClassPathUrls(ExecutableArchiveLauncher.java:102)
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58)
Caused by: java.net.MalformedURLException: no !/ in spec
        at java.base/java.net.URL.<init>(URL.java:708)
        at org.springframework.boot.loader.net.protocol.jar.JarUrl.create(JarUrl.java:74)
        ... 17 more
Caused by: java.lang.IllegalStateException: no !/ in spec
        at org.springframework.boot.loader.net.protocol.jar.Handler.extractAbsolutePath(Handler.java:77)
        at org.springframework.boot.loader.net.protocol.jar.Handler.extractPath(Handler.java:65)
        at org.springframework.boot.loader.net.protocol.jar.Handler.parseURL(Handler.java:55)
        at java.base/java.net.URL.<init>(URL.java:703)

It was hard to determine the root of error, but now as a workaround I changed the folder names (removing "#" from their names).

By the way our OS is Redhat Linux.

Comment From: philwebb

Thanks for the report @pashazadeh. I think I've managed to fix this for 3.2.1.