2011-01-27 14 views
8

Mam problem, że w tej chwili nie wiem nawet, jak zbadać prawidłowo. Wszelkie zalecenia dotyczące tego, w jaki sposób mogę uzyskać więcej informacji, są mile widziane i doceniane.VLC ginie, gdy zostanie wywołana z poziomu Java

Moja firma sprzedaje produkt z rdzeniem WinXP PC. Jednym z zadań produktu jest możliwość uruchomienia odtwarzacza wideo na żądanie - w tym przypadku VLC. (Mówiąc konkretnie, VLC 0.8.6d, jest to kilka lat przestarzały, ale uaktualnienie jest problematyczne z kilku powodów.) Aplikacja odpowiedzialna za uruchomienie odtwarzacza i wykonywanie wielu, wielu innych zadań jest napisana w Javie.

Mam stanowisko testowe siedzące obok mojego biurka. Kiedyś działało dobrze. Ale z jakiegoś powodu, teraz daje okno "Wyślij raport o błędzie", gdy aplikacja Java próbuje uruchomić VLC: "Odtwarzacz multimedialny VLC napotkał problem i musi zostać zamknięty ...." Znasz ten.

Najwyraźniej zrobiłem coś, co burzyło sprawy. Problem polega na tym, że nie wiem, co to może być ani jak to naprawić.

Rzeczy wiem:

  • To nie jest kod błędu. Uruchamiam to samo oprogramowanie na komputerze programistycznym dla programistów i nie ma tego problemu.
  • To nie jest instalacja VLC, ani nie jest to zniekształcony plik wideo. Kiedy przechwytuję polecenie używane do uruchomienia go z Javy i ręcznie wpisuję to polecenie z okna "cmd", działa dobrze.
  • To nie jest ten podstępny bug, w którym Java karze cię, jeśli nie ręcznie spuszczasz STDERR i STDOUT podczas wykonywania wywołania systemowego. Mam to pokryte.
  • Nie otrzymuję żadnych komunikatów o błędach ani danych wyjściowych, gdy się nie uda; to po prostu zawiedzie i daje mi to wyskakujące okienko.

Jestem zaskoczony. Zalecenia dotyczące tego, co może być i jak mogę dowiedzieć się, co to jest, są bardzo mile widziane.

+1

nie jestem pewien, jak bardzo jesteś w stanie uruchomić vlc z wiersza poleceń, ale wciąż spójrz na ten artykuł (http://techdows.com/2009/04/how-to-fixvlc-media-player-has.html). Podnoszę twoje pytanie (może ktoś inny może go rozwiązać). – Favonius

+0

Możliwe, że twój program Java nie ma wystarczających uprawnień wymaganych do uruchomienia VLC z wymaganymi flagami? Sprawdź, czy Twój program używa tego samego pliku vlcrc, co Ty. – dirbacke

Odpowiedz

1

Cóż, nie jestem zaznajomiony z Java i VLC, ale chciałbym zrobić następujące rzeczy:

  1. Sprawdź, czy masz wirtualnych maszyn Java identyczne w obu swoich komputerach. Na wszelki wypadek ...
  2. Sprawdź zmienne środowiskowe procesu. Są zależne od procesu nadrzędnego. Może VLC używa niektórych z nich.
  3. Spróbuj debugować awarie za pomocą rodzimego debuggera, takiego jak WinDbg. Być może stos wywołań da ci więcej pomysłów.

Powodzenia!

0

Moje propozycje:

  1. Tworzenie prostych aplikacji Java, które po prostu uruchamia VLC
  2. korzystają z aplikacji, aby uruchomić prosty okien wiersza polecenia w programie
  3. wykorzystywać swoją aplikację do uruchomienia kompleksowego programu
  4. Sprawdź, czy nie ma problemu z ograniczeniem pamięci. Czy VLC uzyskuje za mało pamięci do uruchomienia?

To naprawdę brzmi jak problem z pamięcią/środowiskiem.

0

wiele rzeczy chciałbym spróbować

  1. Upewnij się, że oba urządzenia testowe i rozwojowe są identyczne pod każdym względem, st operacyjny (jeśli to możliwe zainstalować z tego samego systemu operacyjnego na dysku), samą wersję JVM, sam alokacji pamięci do JVM (znasz te pliki -X-ms). Mój strach nie dotyczy samej Java/JVM, ale jest z Windows.
  2. Upewnij się, że możesz zjeść lunch, na przykład Notatnik z aplikacji Java, a następnie coś takiego jak Windows Media Player lub MS Word.
  3. Wypróbuj i uruchom inne wersje VLC, aby sprawdzić, czy jest to problem z wersją VLC.
  4. końcu spróbować wytrzeć pole testowe i ponownie go zainstalować (Windows, nigdy nie można powiedzieć, świeża instalacja może po prostu to zrobić !!)
Powiązane problemy