Runtime.exec() - problem ze spacją

0

Witam!
Mój problem polega na tym, iż chcę wywołać w linuksie z poziomu javy wysłanie sms za pomocą komendy: "gsmsendsms -b 115200 <nr_tel> <wiadomosc>".

Problem pojawia się w momencie, gdy w treści wiadomości pojawia się choćby jedna spacja. Jeśli zastępie spacje np. _ to nie ma żadnego problemu, jednak w ten sposób wiadomość staję sięniezbyt czytelna i nie za bardzo można ją formatować. W momencie gdy wydaję to polecenie w konsoli wiadomość umieszczana jest w cudzysłowie i wszystko śmiga pięknie. Natomiast w momencie wykorzystania dokładnie tej samej składnie w javie pojawia się błąd:
"gsmssendsms[ERROR]: more than two parameters given".

Moje próby wyglądają dość standardowo tak:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(gsmsendsms -b 115200 888888888 "cos tam cos tam");

Wstawiałem tam już najróżniejsze kombinacje cudzysłowów i nic to nie pomogło.

Jeśli łapię wyjątki to nic mi się niestety nie wyświetla:(

Próbowałem też umieszczać tą komendę w tablicy Stringów, ale nie jestem pewien jak to do końca zrobić więc może tutaj ktoś mógłby mi pomóc.

z góry dzięki za pomoc!!

0

Process proc = rt.exec(gsmsendsms -b 115200 888888888 "cos\ tam\ cos\ tam");

0

Niestety daje to błąd "illegal escape character"

0

użyj \ zamiast \

0

Może zamiast spacji wstawiaj %20
Pozdrawiam

0
Process proc = Runtime.getRuntime().exec("gsmsendsms -b 115200 888888888 \"cos tam cos tam\"");
0
adf88 napisał(a)
Process proc = Runtime.getRuntime().exec("gsmsendsms -b 115200 888888888 \"cos tam cos tam\"");

No oczywiście od tego zacząłem, ale tak jakby ignorował cudzysłowy, jednak jeśli wstawię pojedynczy wyraz w cudzysłów to widzi je i wysyła: "wiadomosc";

Co do innych pomysłów:

%20 powoduje tylko wyświetlenie "%20" zamiast wstawienia spacji

// daje w efekcie /spacja

Może ktoś coś jeszcze ma ciekawego w zanadrzu??

0

Spróbuj tak:

String cmd[] = { "gsmsendsms", "-b", "115200", "888888888", "cos tam cos tam" };
//lub
String cmd[] = { "gsmsendsms", "-b", "115200", "888888888", "\"cos tam cos tam\"" };

Runtime.getRuntime().exec(cmd);
0

Dzięki bardzo poskutkowało:)) Wcześniej też próbowałem z tablicą, w różnych kombinacjach i nie działało a teraz jak najbardziej. Nie trzeba nawet tych cudzysłowów dawać:))

1 użytkowników online, w tym zalogowanych: 0, gości: 1