VLC умирает при вызове изнутри Java - PullRequest
8 голосов
/ 27 января 2011

У меня проблема в том, что в данный момент я даже не знаю, как правильно провести расследование.Любые рекомендации о том, как я могу получить больше информации, приветствуются и приветствуются.

Моя компания продает продукт с ПК WinXP в своей основе.Одной из задач продукта является возможность запуска видеоплеера по требованию - в данном случае VLC.(Точнее говоря, VLC 0.8.6d; он устарел на несколько лет, но его обновление проблематично по нескольким причинам.) Приложение, отвечающее за запуск проигрывателя и выполнение множества других задач, написано на Java.

Рядом с моим столом сидит тестовая установка.Раньше работал просто отлично.Но по какой-то причине теперь оно выдает окно «Отправить отчет об ошибках», когда приложение Java пытается запустить VLC: «Медиаплеер VLC столкнулся с проблемой и должен закрыться ....». Вы знаете одну.

Понятно, я сделал что-то, что мешало.Проблема в том, что я не знаю ни того, что это могло бы быть, ни как бы я мог исправить это.

Вещи, которые я знаю:

  • Это не ошибка кода.Я запускаю то же программное обеспечение на своем компьютере для разработки, и у него нет этой проблемы.
  • Это не установка VLC и не искаженный видеофайл.Когда я перехватываю команду, используемую для запуска ее из Java, и вручную вводю эту команду из окна «cmd», она работает нормально.
  • Это не та хитрая бастич-ошибка, когда Java наказывает вас, если вы не сливаете вручнуюSTDERR и STDOUT при выполнении системного вызова.У меня есть это.
  • Я не получаю никаких сообщений об ошибках или вывод, когда он выходит из строя;он просто выходит из строя и дает мне это всплывающее окно.

Я в тупике.Рекомендации по поводу того, что это может быть или как я могу выяснить, что это такое, очень приветствуются.

Ответы [ 3 ]

1 голос
/ 28 января 2011

Ну, я не знаком с java и VLC, но я бы сделал следующие вещи:

  1. Убедитесь, что у вас есть идентичные виртуальные машины java на обоих ваших рабочих столах.На всякий случай ...
  2. Проверьте переменные среды процесса.Они зависят от родительского процесса.Возможно, VLC использует некоторые из них.
  3. Попробуйте отладить сбой с помощью встроенного отладчика, такого как WinDbg.Возможно, стек вызовов даст вам больше идей.

Удачи!

0 голосов
/ 31 января 2011

Несколько вещей, которые я бы попробовал

  1. Убедитесь, что и тестовые, и тестовые машины идентичны во всех отношениях, операционная система (если возможно, установлена ​​с того же диска ОС), та же версия JVM, та жевыделение памяти для JVM (вы знаете эти вещи -X-ms).Я боюсь не с Java / JVM как таковой, а с Windows.
  2. Убедитесь, что вы можете пообедать, например, Блокнот из приложения Java, а затем что-то вроде Windows Media Player или MS Word.
  3. Попробуйте и запустите другие версии VLC, чтобы увидеть, является ли это проблемой с версией VLC.
  4. Наконец, попробуйте стереть окно теста и переустановить его (в Windows вы никогда не узнаете, что новая установка можетпросто сделай это !!)
0 голосов
/ 28 января 2011

Мои предложения:

  1. Создайте простое приложение Java, которое просто запускает VLC
  2. Используйте ваше приложение для запуска простой программы Windows командной строки
  3. Используйте ваше приложениедля запуска сложной программы
  4. Проверьте, нет ли проблемы с памятью.VLC получает слишком мало памяти для запуска?

Это действительно звучит как проблема памяти / среды.

...