سؤال

See this superuser question. I need to run the command

explorer.exe /select,"C:\Program Files\foobar"

from Java. The following Java code does NOT work like the above command line call (the Explorer selects a completely different directory):

Runtime.getRuntime().exec(new String[] {
    "explorer.exe",
    "/select,\"C:\\Program Files\\foobar\""
});

What other options I have from pure Java side (no native code)?

هل كانت مفيدة؟

المحلول

You could place the /select in a separate String token to stop it being treated as part of the path:

Runtime.getRuntime().exec(new String[] {
        "explorer.exe",
        "/select,", 
        "\"C:\\Program Files\\foobar\""
        });

نصائح أخرى

Try ProcessBuilder. That API allows you to pass in arguments without quoting. See http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html#command(java.util.List)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top