| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > javaws command line |
| Автор: PashaOvechkin 19.3.2009, 13:35 | ||
| Привет всем! Мне необходимо передавать параметры в мейн метод, запуская ето через ЙНЛП. Генерю строку и запускаю
Реально строка выглядит так-> "javaws -open first,second,third http://mybest.url.com/my.jnlp" В но в http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/javaws.html сказано что параметры должны передаватся так -> "javaws -open first second third http://mybest.url.com/my.jnlp" т.и не через запятую одним стрингом, а по нормальному, как и принято к командной строке. Первый вариант у меня работает. Получаю все параметры в первом (т.и в нулевом) и сплитером разделяю их. Может кто нить знает как сделать правильно? Откровенно говоря похоже на буг :\ |
| Автор: LSD 19.3.2009, 13:43 |
Ты просто неправильно передаешь параметры в vararg метод. Или params передавай не в массиве, а по одному. Или создай новый массив куда скопируй "javaws", "-open", params и JNLP_URL. |
| Автор: PashaOvechkin 19.3.2009, 13:53 | ||||||
| Стоп стоп стоп... забудем об етом ->
Есть строка "javaws -open first,second,third http://mybest.url.com/my.jnlp" если из кода
то всё ок, и можно сплитить по "," Если же строка = "javaws -open first second third http://mybest.url.com/my.jnlp"
|
| Автор: LSD 19.3.2009, 13:58 |
| Вообще нифига не понятно. Опиши чётко, что есть на входе и что надо получить на выходе. |
| Автор: PashaOvechkin 19.3.2009, 14:13 |
| Боже... Нужно передать параметры в мейн метод, вызывая его веб стартом. Используя командную строку. у javaws есть команда -open, кототая способна ети параметры передать. По всем правилам параметры передаются так -> "javaws http://mybest.url.com/my.jnlp -open first second third" но таким образом я получаю лиш первый параметр. И поетому придумал решение "javaws http://mybest.url.com/my.jnlp -open first,second,third" т.и все пара,етры передаются в одном, в первом параметре. А хотелось бы по человечески. |
| Автор: LSD 19.3.2009, 15:55 | ||
Заключи параметры в кавычки:
|
| Автор: PashaOvechkin 19.3.2009, 16:20 |
| хмм.. Помоему не прокатывало. Но попробую еще раз. Пасиб за совет! |
| Автор: aleksandy 20.3.2009, 10:27 | ||||||
PashaOvechkin, ты сигнатуру конструктора ProcessBuilder-а видел? Там ожидается массив строк на вход, таким образом твой
нужно записать как-то так
З.Ы. Если содержимое params заранее известно, то можно сделать так:
|
| Автор: LSD 20.3.2009, 11:53 |
| aleksandy, params - это String, если бы params был бы String[] то была бы ошибка компиляции. |
| Автор: PashaOvechkin 20.3.2009, 12:56 |
| ProcessBuilder ето последнее что интересует в етой ситуации... Даже просто запуская через командную строку, "javaws http://mybest.url.com/my.jnlp -open first,second,third" то в результате получаю -> args[0] = "-open" args[1] = "first,second,third" args[2] nullPointer . . . Вобщем то параметры передаются, всё ок, но хотелось добится что бы запуская так -> "javaws http://mybest.url.com/my.jnlp -open first second third" args[0] = "first" args[1] = "second" args[2] = "third" Если параметры передавать в кавычках, как и советовал ЛСД, то они всё равно (естественно )все прийдут в args[1] = "first second third" Видимо ето и есть единственный верный способ... |
| Автор: LSD 20.3.2009, 16:20 | ||
Возможно javaws позволяет использовать несколько раз параметр -open, т.е.
|
| Автор: aleksandy 3.4.2009, 09:33 | ||||||||||||
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html#ProcessBuilder(java.lang.String...), парень т.е. запись String... и String[] в сигнатуре метода одно...ственны. Разница лишь в том, что если
1. либо один аргумент в виде массива строк; 2. сколько угодно аргументов типа String. |
| Автор: LSD 3.4.2009, 12:28 | ||
Прежде чем советовать другим RTFM, неплохо было бы вообще почитать о чем идет речь. И внимательно взглянуть на код.
а теперь объясни как ты передашь в качестве params - String[] и не получишь при этом ошибку компиляции? |
| Автор: aleksandy 3.4.2009, 18:23 | ||||||||
LSD, чуть выше я все написал, читай внимательнее. Где в предложенном мною варианте ошибка? Укажи, пожалуйста. Согласен, я немного не углядел, что в исходном коде params - это просто строка. Однако, я думаю ни для кого не секрет, что в цикле вида
|