2009-08-12 7 views
3

J'utilise une application de bureau codée Java pour suivre mon temps sur les projets.ERREUR FATALE dans le code JNI - vraisemblablement dans la bibliothèque JDIC

Je l'ai utilisé jusqu'à ce que le service informatique a fait une nouvelle configuration sur ma station. Et maintenant je ne peux pas lancer cette application.

J'ai obtenu un fichier journal quand je le lance en disant:

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d8fd8f5, pid=616, tid=4072 
# 
# JRE version: 6.0_15-b03 
# Java VM: Java HotSpot(TM) Client VM (14.1-b02 mixed mode, sharing windows-x86) 
# Problematic frame: 
# V [jvm.dll+0xfd8f5] 
# 
# If you would like to submit a bug report, please visit: 
# http://java.sun.com/webapps/bugreport/crash.jsp 
# 

Après googler quelque temps, je suis allé alors sur la Troubleshooting guide faite par Sun et encore lancer l'application avec l'argument -Xcheck:jni cette fois-ci. Le résultat est que je suis arrivé cette nouvelle erreur:

FATAL ERROR in native method: Wrong object class or methodID passed to JNI call 
     at org.jdesktop.jdic.tray.internal.impl.DisplayThread.initTray(Native Method) 
     at org.jdesktop.jdic.tray.internal.impl.DisplayThread.run(Unknown Source) 
     - locked <0x2801e4e0> (a java.lang.Class for org.jdesktop.jdic.tray.internal.impl.DisplayThread) 

J'ai essayé de télécharger la dernière version de JDIC mais même le lancement de leurs propres échantillons me obtenir la même erreur. Je suppose que le problème est avec le verrouillé dans le message d'erreur mais je ne sais pas où aller à partir de maintenant ...

Pouvez-vous m'aider?

Ma boîte:

  • Windows XP SP3

  • Java 6 (1.6.0_15)

MISE À JOUR

Il est maintenant fixé malheureusement je peux ne dis pas comment. Depuis hier, la seule chose que je peux dire est que j'ai redémarré au moins une fois à côté de ça je n'ai pas installé une nouvelle configuration Java ou autre chose ... Désolé si quelqu'un est confronté au même problème.

Répondre

0

Ah les joies de JNI!

Je pense que c'est dire que l'API de la bibliothèque de code native que votre application essaie d'utiliser n'est pas compatible avec le côté Java. Je suppose que les changements apportés par les informaticiens comprenaient la modification de la bibliothèque/DLL/tout ce que l'application Java essayait d'utiliser.

+0

J'ai eu des problèmes similaires avec JDIC dans la mesure où nous l'appelons maintenant JD! Ck. Nous l'utilisions pour ouvrir des fichiers CSV dans Excel, mais sur certaines machines, il s'agissait toujours d'un point chaud. Pour résoudre ce problème, nous sommes revenus à l'aide de Runtime.exec ("cmd/c prog.exe"). Cependant, il semble que vous vouliez jouer avec l'icône de la barre d'état, cela n'aidera pas. – pjp

+0

L'IT a fait une nouvelle configuration, mais la bibliothèque utilisée par l'application est toujours la même que précédemment. L'informatique n'a pas changé. –

0

Voyez si vous pouvez appeler des fonctions qui ne prennent pas les arguments sans problèmes, comparés à ceux qui le font.

Vous pouvez constater que l'interface ne correspond plus à la bibliothèque. Si vous utilisez SWIG pour générer les fichiers d'interface par exemple, différentes versions de SWIG génèrent des nombres d'arguments différents.

Malheureusement, le mésappariement entre le code d'interface java et le code de la bibliothèque ne génère pas d'erreur, il se bloque simplement.

Questions connexes