2011-01-27 1 views
8

Je rencontre un problème qui, en ce moment, je ne sais même pas comment enquêter correctement. Toutes les recommandations sur la façon dont je peux obtenir plus d'informations sont les bienvenues et appréciées.VLC en train de mourir quand on l'appelle de l'intérieur de Java

Mon entreprise vend un produit avec un PC WinXP à sa base. L'une des tâches du produit est de pouvoir démarrer un lecteur vidéo à la demande - VLC, dans ce cas. (Pour être précis, VLC 0.8.6d, il est vieux de plusieurs années, mais la mise à niveau est problématique pour plusieurs raisons.) L'application responsable du démarrage du lecteur et d'effectuer beaucoup, beaucoup d'autres tâches est écrit en Java. J'ai un banc d'essai assis à côté de mon bureau. Cela fonctionnait très bien. Mais pour une raison quelconque, il donne maintenant une fenêtre "Envoyer un rapport d'erreur" lorsque l'application Java essaie de démarrer VLC: "VLC media player a rencontré un problème et doit fermer ...." Vous connaissez l'un. De toute évidence, j'ai fait quelque chose qui encombre les choses. Le problème est, je ne sais ni ce que cela pourrait être ni comment je ferais pour le réparer.

Stuff Je sais:

  • Ce n'est pas un bug de code. Je cours le même logiciel sur mon ordinateur de bureau de développement, et il n'a pas ce problème.
  • Ce n'est pas l'installation de VLC, ni un fichier vidéo mal formé. Lorsque je capture la commande utilisée pour démarrer à partir de Java et entrer manuellement cette commande à partir d'une fenêtre "cmd", cela fonctionne très bien.
  • Ce n'est pas ce bogue bastich sournois où Java vous punit si vous ne vidangez pas manuellement STDERR et STDOUT lors d'un appel système. J'ai couvert ça.
  • Je ne reçois aucun message d'erreur ou de sortie en cas d'échec; il échoue juste et me donne cette fenêtre pop-up.

Je suis perplexe. Les recommandations pour ce que cela pourrait être ou comment je peux comprendre de quoi il s'agit sont les bienvenues.

+1

Je ne suis pas très sûr que vous êtes en mesure d'exécuter le vlc de l'invite de commande, mais jetez un oeil à cet article (http://techdows.com/2009/04/how-to-fixvlc-media-player-has.html). J'élève votre question (peut-être que quelqu'un d'autre pourrait la résoudre). – Favonius

+0

Il se peut que votre programme Java ne dispose pas des privilèges suffisants pour exécuter VLC avec les indicateurs requis? Veuillez vérifier si votre programme utilise le même fichier vlcrc que vous. – dirbacke

Répondre

1

Eh bien, je ne suis pas familier avec Java et VLC, mais je ferais les choses suivantes:

  1. Vérifiez que vous avez des machines virtuelles java identiques dans les deux de vos ordinateurs de bureau. Au cas où ...
  2. Vérifiez les variables d'environnement du processus. Ils dépendent du processus parent. Peut-être que VLC utilise certains d'entre eux. Essayez de déboguer l'écrasement avec un débogueur natif comme WinDbg. Peut-être que la pile d'appels vous donnera plus d'idées.

Bonne chance!

0

Mes suggestions:

  1. Créer une application simple java qui vient lance VLC
  2. Utilisez votre application pour lancer une fenêtre simple ligne de commande programme
  3. Utilisez votre application pour lancer un programme complexe
  4. Vérifiez s'il y a un problème de contrainte de mémoire. Est-ce que VLC a trop peu de mémoire pour fonctionner?

Cela ressemble vraiment à un problème de mémoire/environnement.

0

Un certain nombre de choses que j'essaierait

  1. Assurez-vous que les deux machines de test et de développement sont identiques à tous égards, le systè d'exploitation (si possible installé depuis le même système d'exploitation de disque), même version JVM, même allocation de mémoire à JVM (vous connaissez ces trucs -X-ms). Ma peur n'est pas avec Java/JVM en soi, c'est avec Windows.
  2. Assurez-vous que vous pouvez déjeuner par exemple le Bloc-notes à partir d'une application Java, puis quelque chose comme Windows Media Player ou MS Word.
  3. Essayez de lancer d'autres versions de VLC pour voir s'il s'agit d'un problème de version VLC.
  4. Enfin essayer de nettoyer la zone de test et le réinstaller (avec Windows, vous ne pouvez jamais dire, une nouvelle installation pourrait bien le faire !!)
Questions connexes