Jestem zainteresowany, jeśli ktoś ma pomysł, w jaki sposób uruchomić polecenia UNIX bez wykorzystania czasu pracy lub ProcessBuilder w aplikacji javaAlternatywy do wykonywania i ProcessBuilder (Java)
Odpowiedz
Cóż można użyć DefaultExecutor z Apache Commons Exec biblioteki do wykonywania poleceń, ale to wewnętrznie używa java.lang.Runtime
i java.lang.Process
.
Proponuję użyć tej biblioteki w środowisku wykonawczym, ponieważ funkcje API Apache Command Execution są bardziej zaawansowane i zapewniają więcej i więcej funkcji niż Java Runtime. Obsługuje również wartości wyjściowe.
Czy obsługuje problem z zawieszaniem, jak opisano w tym komentarzu - http://stackoverflow.com/a/5483880/537503? –
Istnieje wiele możliwych sposobów; ale nie mogę nazwać żadnego z nich pożądanym bez zrozumienia twojej motywacji.
Na przykład napisz program w języku C lub Perl lub w innym języku i posłuchaj go na gnieździe. Twój program java może następnie połączyć się z gniazdem i wysłać wiadomość z nazwą programu do odradzania, argumentów itp. Program odbiornika może iść dalej i odrodzić to.
w prawo, więc pomysł na to jest stworzenie aplikacji serwera java, która odpowiada na podstawowe polecenia, takie jak ls, pwd, cd itp. – tosi
Istnieją dwa sposoby wykonywania poleceń Unix:
- Można używać
java.lang.Runtime
ijava.lang.Process
- Można użyć JNI/JNA dostęp do bibliotek współdzielonych. Możesz więc użyć tego, aby uzyskać dostęp do poleceń na poziomie systemu operacyjnego, aby utworzyć proces (na Unixie) (
system()
iexec*()
).
Drugie podejście nie jest zalecane: Trudno, aby uzyskać prawo i ostatecznie, można skończyć z czymś, co ma dokładnie taką samą funkcjonalność jak Runtime.exec()
Jeśli potrzebujesz tylko funkcjonalność, a następnie możesz ponownie zaimplementować komendy w Javie. Na przykład, aby zaimplementować ls
, należy użyć File.listFiles()
- 1. Java EE 6 i alternatywy
- 2. ProcessBuilder i Process.waitFor(), jak długo trwa oczekiwanie?
- 3. przekazać wiele parametrów do ProcessBuilder z odstępem
- 4. Narzędzia Java do łączenia wykonywania w czasie wykonywania z pokryciem
- 5. Java ProcessBuilder process.destroy() nie zabija procesów potomnych w winXP
- 6. przejściu i wykonywania funkcji członka w java
- 7. Start CMD przy użyciu ProcessBuilder
- 8. Alternatywy dla JasperReports i BIRT
- 9. kolejność wykonywania adnotacji java
- 10. Alternatywy FindWindow i SetForegroundWindow?
- 11. Podnoszenie procesu ProcessBuilder przez UAC?
- 12. Decydując między Apache Commons Exec lub ProcessBuilder
- 13. ProcessBuilder nie może znaleźć pliku ?!
- 14. Jakie są alternatywy dla uwierzytelniania Java?
- 15. Java: Błąd "UNIXProcess" podczas używania "exec" lub "ProcessBuilder" do uruchomienia polecenia
- 16. Jak emitować i wykonywać kod bajtowy Java w czasie wykonywania?
- 17. Alternatywy dla serwera ArcGIS
- 18. Kompilowanie i używanie klas Groovy z Java w czasie wykonywania?
- 19. Przekierowanie wyjścia ProcessBuilder w Javie 5/6?
- 20. Wskaźniki i prędkość wykonywania
- 21. Jak wygospodarować prędkość wykonywania programów Java?
- 22. Narzędzia do wykonywania kodu sakwowego
- 23. alternatywy webistrano?
- 24. alternatywy window.opener
- 25. Alternatywy dla SmartAssembly do obsługi wyjątków i raportowania?
- 26. Alternatywy do przekazania klucza i wartości przez odniesienie:
- 27. Alternatywy SyncAdapter
- 28. Uruchamianie skompilowanego kodu Java w czasie wykonywania
- 29. Szukałem alternatywy dla JasperReports
- 30. Alternatywy PHP?
czy możesz wyjaśnić, dlaczego? – AlexR
wymaganie zadania – tosi