Я сталкиваюсь с особенным поведением конфигурации запуска Eclipse и, похоже, является проблемой только для Windows. Предположим, у меня есть приложение Java, которое выводит аргументы командной строки, например:
public class WildCard {
public static void main(String[] args) {
for (String arg: args) {
System.out.println(arg);
}
}
}
Если я предоставляю аргумент с дикой картой, которая может быть расширена оболочкой, оболочка будет расширять ее и передавать ее в программу Java. Это не удивительно. Итак, если я сделаю в командной строке
java WildCard test/*
программа распечатает
test/foo.txt
test/bar.txt
где foo.txt и bar.txt являются файлами в каталоге "test".
Расширения оболочки можно предотвратить, если я окружаю аргумент подстановки в кавычках; одиночные кавычки на * nix и двойные кавычки в Windows. Поэтому для Windows, если я сделаю следующее в командной строке:
java WildCard "test/*"
программа теперь будет печатать
test/*
(без расширения).
Тем не менее, я нахожу, что цитирование в запуске запуска Eclipse, похоже, не имеет эффекта, и аргумент все еще расширяется. Если я поставлю
"test/*"
в разделе аргументов программы в запуске запуска Eclipse и запустить указанный класс, я все равно получаю
test/foo.txt
test/bar.txt
Другими словами, двойные кавычки, кажется, теряются, когда программа действительно выполняется. Это похоже на Windows.
Есть ли способ предотвратить расширение glob с помощью запуска запуска Eclipse в Windows?