<p>
        Calling `java -XX:CRaCRestore Foo arg1` when there is whitespace in `arg1` causes `arg1` to be split into multiple arguments. I don't think this is intentional.
</p>
<p>
        <br>
</p>
<p>
        Here's a demonstation.
</p>
<p>
        <br>
</p>
<p>
        ```java
</p>
<p>
        // mypack/Foo.java
</p>
<p>
        package mypack;<br>
<br>
import jdk.crac.Core;<br>
import java.util.Arrays;<br>
<br>
public class Foo {<br>
    public static void main(String[] args) throws Exception {<br>
        jdk.crac.Core.checkpointRestore();<br>
    }<br>
}<br>
<br>
class Bar {<br>
    public static void main(String[] args) {<br>
        System.out.println(Arrays.toString(args));<br>
    }<br>
}
</p>
<p>
        <br>
</p>
<p>
        ```
</p>
<p>
        <br>
</p>
<p>
        Step 1: create a checkpoint with `java -XX:CRaCCheckpointTo=foo_checkpoint mypack.Foo`
</p>
<p>
        Step 2: restore the checkpoint with `java -XX:CRaCRestoreFrom=foo_checkpoint mypack.Bar 'Hello World'`
</p>
<p>
        <br>
</p>
<p>
        Expected output: ["Hello World"]
</p>
<p>
        Actual output: ["Hello", "World"]
</p>