Это потому, что *
является подстановочным знаком оболочки: он имеет особое значение для оболочки, которая расширяет ее, прежде чем передавать ее команде (в данном случае java
).
вам нужен буквальный *
, вам нужно сбежать из оболочки. Точный способ экранирования зависит от вашей оболочки, но вы можете попробовать:
java ProgramName 5 3 "*"
Или:
java ProgramName 5 3 \*
Кстати, если вы хотите знать что делает оболочка с *
, попробуйте распечатать содержимое String[] args
для вашего метода main
. Вы обнаружите, что он будет содержать имена файлов в вашем каталоге.
Это может быть удобно, если вам нужно передать некоторые имена файлов в качестве аргументов командной строки.
a.log
и b.log
, то команда cat *.log
будет расширена оболочкой до cat a.log b.log
sh
) символы звездочки (*
) и вопросительного знака (?
) являются подстановочными символами, расширенными с помощью globbing , Без предшествующего escape-символа *
будет расширяться до имен всех файлов в рабочем каталоге, которые не начинаются с периода, если и только если есть такие файлы, в противном случае *
остается нерасширенным. Поэтому, чтобы ссылаться на файл, буквально называемый "*"
, оболочке должно быть сказано не интерпретировать ее таким образом, предшествуя ей обратным слэшем (\
). Если сервер rails не работает, он не будет пытаться отправлять сообщения (однако см. Примечание в конце)
Но случай с задачей rake, которую вы хотите запустить, пока сервер работает, интересен , Я не думаю, что есть какой-либо опубликованный способ отключить «удаленный процесс -> сервер», но этот патч будет выполнять то же самое:
module Hyperstack
def self.send_to_server(*args)
# drop the message on the floor
end
end
Просто добавьте это в задачу rake. [114 ]
Относительно того, что сервер «не работает», один случай, который не работает, это то, что сервер фактически «работает», но просто никогда не отвечает. См. https://github.com/hyperstack-org/hyperstack/issues/144 для получения подробной информации. Если вы пытаетесь отладить проблему с сервером, то тот же патч, описанный выше, поможет, пока эта проблема не будет устранена.