3

Java でコーディングされたデスクトップ アプリケーションを使用して、プロジェクトの時間を追跡しています。

IT 部門がステーションで新しいセットアップを行うまで、私はそれを使用していました。そして今、このアプリケーションを起動できません。

起動すると、ログファイルが次のように表示されました。

#
# 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
#

しばらくグーグルで調べた後、Sun が作成したトラブルシューティング ガイド-Xcheck:jniに進み、今回は引数を使用してアプリケーションを再起動しました。その結果、次の新しいエラーが発生しました。

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)

JDIC の最新バージョンをダウンロードしようとしましたが、独自のサンプルを起動しても同じエラーが発生します。問題はエラーメッセージのロックにあると思いますが、どこに行けばいいのかわかりません...

私たちを手伝ってくれますか?

私の箱:

  • Windows XP SP3

  • Java 6 (1.6.0_15)

アップデート

現在は修正されていますが、残念ながら方法がわかりません。昨日以来、私が言える唯一のことは、新しいJavaセットアップなどをインストールしていないことを除けば、少なくとも1回は再起動したということです...誰かが同じ問題に直面している場合は申し訳ありません。

4

2 に答える 2

0

引数を取る関数と比較して、問題なく引数を取らない関数を呼び出すことができるかどうかを確認してください。

インターフェイスがライブラリと一致しなくなっている場合があります。たとえば、SWIG を使用してインターフェイス ファイルを生成している場合、SWIG のバージョンが異なれば、生成される引数の数も異なります。

残念ながら、Java インターフェイス コードとライブラリ コードが一致していなくても、エラーは発生せず、クラッシュするだけです。

于 2009-08-14T15:48:35.833 に答える
0

ああ、JNI の喜び!

アプリケーションが使用しようとしているネイティブ コード ライブラリの API が Java 側と互換性がないと言っていると思います。私の推測では、IT 担当者が行った変更には、ライブラリ / DLL / Java アプリが使用しようとしているものすべての変更が含まれていたようです。

于 2009-08-12T09:51:10.297 に答える