Witam,
w jaki sposób sprawdzić czy dany program jest uruchomiony/czy dany pid istnieje? (pod windowsem)
nie zaprzęgając do tego .exec ?
Bardzo czesto robi sie to w taki sposob ze gdziestam na boku tworzysz plik z pidem, albo otwierasz socketa ktory swiadczy ze program jest uruchomiony, rozne takie. Z Javy bez uzycia kodu natywnego nie wyszukasz po pidzie, no chyba ze wywolasz ps (linux, cygwin), ale to wymagaa exec() ktorego nie chcesz.
Przeszukiwałem (wydaje mi się że bardzo skrupulatnie) Java Glossary i nie znalazłem rozwiązania.. szkoda..
Dlaczego nie exec, a no dlatego, że nie potrafię pewnie z niego korzystać. Mianowicie kiedy wykonuję jakieś polecenie choćby .excec("tasklist"); to nie umiem sprawdzić czy polecenie wykonało się prawidłowo czy też nie. W tym cały ból mój...
dziękuje za odp.
No bo exec() powoduje tylko uruchomienie pewnego procesu ;)
Ty potrzebujesz raczej czegoś w stylu popen()
Dziękuje Panowie za odpowiedzi. Z góry założyłem, że się nie da nie doczytując dokumentacji nt. .exec.
I faktycznie Wasze uwagi okazały się trafne..
Przykład:
private Integer sharePointUser(String username) {
Runtime r = Runtime.getRuntime();
Process p = null;
try {
p = r.exec("c:\\windows\\system32\\net.exe use O: \\\\192.168.1.2\\www\\"+username+" xyz /USER:backupuser");
p.waitFor();
if(p.exitValue() != 0) {
return 1;
}
return 0;
} catch (Exception e) {
//System.out.println("error executing " + cmd[0]);
}
return 1;
}
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.