8
votes

VLC meurant quand appelé de Java à l'intérieur

J'ai un problème qui, en ce moment, je ne sais même pas comment enquêter correctement. Toute recommandation sur la manière dont je peux obtenir plus d'informations sont les bienvenues et appréciées.

Ma société vend un produit avec un PC WinXP à son noyau. L'une des tâches du produit est de pouvoir démarrer un lecteur vidéo sur demande - VLC, dans ce cas. (Pour être spécifique, VLC 0,8,6D; il est passé plusieurs années à jour, mais la mise à niveau est problématique pour quelques raisons.) La demande responsable du démarrage du joueur et de l'exécution de nombreuses autres tâches est écrite en Java.

J'ai une plate-forme de test assis à côté de mon bureau. Il travaillait juste bien. Mais pour une raison quelconque, il donne maintenant une fenêtre "Envoyer un rapport d'erreur" lorsque l'application Java tente de démarrer VLC: "VLC Media Player a rencontré un problème et doit fermer ..." "Vous connaissez celui-ci.

Clairement, j'ai fait quelque chose qui enchaînait les choses. Le problème est que je ne sais pas non plus ce que cela pourrait être ni comment j'irais que je vais y fixer.

choses que je connais:

  • Ce n'est pas un bug de code. J'exécute le même logiciel sur ma machine de bureau de développement et cela n'a pas ce problème.
  • Ce n'est pas l'installation VLC, ni un fichier vidéo mal formé. Lorsque je capture la commande utilisée pour la démarrer à partir de Java et entrez manuellement cette commande à partir d'une fenêtre "CMD", cela fonctionne bien.
  • Ce n'est pas ce bogue Sneaky Bastich où Java vous punit si vous ne videz pas manuellement STDERR et STDOUT lorsque vous effectuez un appel système. J'ai ceci couvert.
  • Je ne reçois aucun message d'erreur ni de sortie lors de son échec; Ça échoue et me donne cette fenêtre contextuelle.

    Je suis exclu. Recommandations pour ce que cela pourrait être ou comment je peux comprendre ce que c'est le bienvenu.


2 commentaires

Je ne suis pas très sûr que vous pouvez exécuter le VLC à partir de l'invite de commande, mais je suis toujours consulté sur cet article ( techdows.com/2009/04/how-to-fixvlc-media-player-has.html ). Je passe votre question (peut-être que quelqu'un d'autre pourrait le résoudre).


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


3 Réponses :


1
votes

Eh bien, je ne connais pas Java et VLC, mais je ferais les choses suivantes:

  1. Vérifiez que vous avez des machines virtuelles Java identiques dans vos deux ordinateurs de bureau. Juste 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.
  3. Essayez de déboguer sur le débogueur natif comme Windbg. Peut-être que la pile d'appels vous donnera plus d'idées.

    bonne chance!


0 commentaires

0
votes

Mes suggestions:

  1. Créer une application Java simple qui vient de lancer VLC
  2. Utilisez votre application pour lancer un programme Windows de ligne de commande simple
  3. Utilisez votre application pour lancer un programme complexe
  4. Vérifiez s'il y a un problème de contrainte de mémoire. VLC est-il trop petit souvenir pour courir?

    Cela ressemble vraiment à une question de mémoire / environnement.


0 commentaires

0
votes

Un certain nombre de choses que j'essaierais

  1. Assurez-vous que les machines de test et de développement sont identiques à chaque égard, le système de fonctionnement (si possible installé à partir du même disque OS), la même version JVM, la même répartition de la mémoire à JVM (vous connaissez ces articles -X-MS). Ma peur n'est pas avec Java / Jvm en soi, il est avec Windows.
  2. Assurez-vous de déjeuner par exemple Notepad depuis 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. Essayez enfin et essuyez enfin la zone de test et réinstallez-la (avec Windows, vous ne pouvez jamais le dire, une nouvelle installation pourrait simplement le faire !!)

0 commentaires