как избежать расширения глобуса при запуске приложения Java в eclipse

Я столкнулся со специфическим поведением конфигурации запуска 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.

Есть ли способ предотвратить расширение глобуса с помощью средства запуска Eclipse в Windows?

10
задан dimo414 18 July 2016 в 01:55
поделиться