問題タブ [jnienv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JNI_CreateJavaVM によって作成された JVM にデバッガーをアタッチする
これはUbuntu 12.04 / Java 7、64ビットにあります
WebkitGtk バージョン 2 の Java バインディングを作成するプロジェクトに取り組んでいます。WebkitGTK に対する主な関心は、Web ページを表示するだけではなく、DOM アクセスと操作です。V2 では、WebkitGtk チームは、拡張機能を介して DOM アクセスを許可するアーキテクチャを変更しました。拡張機能は、Webkit の開始時に起動される別のプロセスである WebKitWebProcess によって読み込まれます。
私はそれのほとんどを管理下に置きました。拡張機能がロードされ、JVM が開始され、Java クラスがロードされ、ほとんど期待どおりに動作しています。現在、私のデバッグ手法は基本的に println ステートメントおよび/または log ステートメントです。
Javaコードをより簡単にデバッグできるように、Javaデバッガーを接続できるかどうか疑問に思っています。jps コマンドを実行すると、WebKitWebProcess の PID が表示されます。そのため、誰かがこのプロセスに JVM があることを認識しています。推奨されるデバッガーは eclipse です。
基本的には、VM が JNI_CreateJavaVM を使用して起動され、プロセスが既に実行されている Java デバッガーをアタッチする方法に要約されます。
c++ - JNI_CreateJavaVM() が終了コード 1 で終了する
JNI を使用して C++ から Java メソッドを呼び出そうとしています。そのために、 をインストールし、 とを含めてjdk1.7.0_51
にリンクしました。Visual Studio 2012 で次のコードを使用して Java vm オブジェクトを作成しようとしましたが、関数は常に終了コード 1 でアプリケーションを終了します (関数は 1 を返しません: プログラムは完全に終了し、終了コード 1 を送信します)。jdk1.7.0_51\lib\jvm.lib
jdk1.7.0_51\include
jdk1.7.0_51\include\win32
OS: Windows 7 (x64)
コンパイラ: Visual Studio 2012 (x86/Win32 プロジェクト)
Java VM: jdk1.7.0_51、i586 (x86 用にコンパイルしているため、私の意見では問題ないはずです。そうしないと、jvm.lib とのリンクが機能しません)
私はすでに両方を使用しようとしました:jdk1.7.0_51\jre\bin\client\jvm.dll
と同様にjdk1.7.0_51\jre\bin\Server\jvm.dll
- 同じ結果が得られました (ただし、違いが何であるかは完全にはわかりません)。
どんなアイデアや提案も大歓迎です。
android - JNI C ファイルでメソッド 'GetArrayLength'/'GetByteArrayRegion' を解決できませんでした
JNI C ファイルの 1 つで Eclipse Android プロジェクトをビルドしようとすると、次のエラーが発生します。
次のように GetArrayLength/GetByteArrayRegion を呼び出すだけです。
誰が何が悪いのか知っていますか?プロジェクトは別の PC で正常にビルドされます。
ありがとう。
java - C++ でオブザーバー パターンを実装し、JNI で Java メソッドを呼び出す方法
C++ でオブザーバー パターンを実装するコードがあります。オブザーバーを登録する C++ コードに似た Java JNI コードを作成しました。Java でオブザーバーを登録するとnative
、C++ でリスナーを作成するメソッドが呼び出されます。
C++ のメソッド呼び出しで、登録されている Java オブザーバーの同等のメソッドを呼び出したいと考えています。C++ でオブザーバー クラスにを渡すことで、このためのコードを作成しJNIEnv
ましたが、これは安全ではないと聞きました。このタイプの実装に関するベスト プラクティスはありますか?
java - eclipse/java -- java.lang.UnsatisfiedLinkError: java.library.path に ndbclient がありません
これは非常に単純な問題のようで、単純な答えを期待しています。これに関する多くの投稿を読みましたが、解決策が見つかりませんでした。
簡単なプログラムを次に示します。
次のエラーが発生します。
次の引数を使用して java.library.path を変更しました。このパスは確かに有効で、ライブラリが含まれています。
lib ディレクトリには以下が含まれます。
私は64ビットOSを使用しています:
まだ 32 ビット版の Eclipse:
ロードしようとしているライブラリは、MySQL Cluster 5.6 の 64 ビット インストールのものです。
どんなアイデアでも大歓迎です!
ありがとう!
java - getClass への jni 呼び出しは、jobject に対して null を返します
JNI を使用して C++ コードから Java 呼び出しを行う際に問題に直面しています。jobject を取得できますが、jobject での API の呼び出しが失敗します。ほぼ 1 日掘り下げて、他の動作中の Java API (コードで呼び出す jobjects) と比較すると、1 つの違いが見つかりました。
次のコード
問題が発生しているジョブジェクトの cls obj が null であると表示されます。
他のジョブジェクトの場合、呼び出しは null を返しません。
主な違いは、新しく追加されたクラスであり、この問題を引き起こす可能性のある何かを見落としていたようです。何度も再確認しましたが、明確な指標は得られませんでした。
どんな助けでも感謝します。
android - C++ インターフェイスでコードを転送する方法
を使用しているときに、コードを C++ インターフェイスに変換したいと考えていますJNI
。これは私のJavaコードです
Cインターフェイスを使用しているときに、次のエラーが表示されます
Jni およびネイティブ android で C++ インターフェイスを使用できますか。どのサンプルも非常に感謝しています