This isn't a problem for Jetty, its a limitation of the Windows FileSystem implementation in Java.
It won't allow quotes in paths on Windows.
Quotes are allowed on Unix filesystems, hence the lack of exception when not running on Windows.
At this point, you have to fix your dojo installation to produce proper requests for resources, as it *really* shouldn't be requesting things with quote characters or square brackets.
As for your embedded jetty setup, here's a a few different setups setups for you to work with ...
or ...
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setBaseResource(new PathResource(cfg.sdkRootDir));
context.setContextPath("/js");
context.setDisplayName("IOD SDK Resources Servlet Context");
server.setHandler(context);
ServletHolder defHolder = context.addServlet(DefaultServlet.class, "default");
defHolder.setDisplayName("Resources Servlet");
defHolder.setAsyncSupported(true); // leave this as true
defHolder.setInitParameter("cacheControl", "max-age=0, no-cache, no-store");
defHolder.setInitParameter("useFileMappedBuffer", "false");
defHolder.setInitParameter("gzip", "false");
defHolder.setInitParameter("etags", "true");
defHolder.setInitParameter("redirectWelcome", "false");
defHolder.setInitParameter("welcomeServlets", "false");
defHolder.setInitParameter("dirAllowed", "true");
defHolder.setInitParameter("maxCachedFiles", "2048");
defHolder.setInitParameter("maxCachedFileSize", "200000000");
defHolder.setInitParameter("maxCacheSize", "256000000");
defHolder.setInitParameter("acceptRanges", "true");
defHolder.setInitParameter("aliases", "true");
defHolder.setInitParameter("acceptRanges", "true");
server.start();