問題タブ [javah]

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.

0 投票する
1 に答える
2251 参照

java - javax.serverlet.GenericServletのクラスファイルが見つかりません

クラス->ヘッダーファイルに数日間留まっています!

http://netbeans.org/kb/docs/cnd/beginning-jni-linux.htmlおよびhttp://ringlord.com/jni-howto.htmlによってクライアントでjniを試しました。そして、JNIの(.cpp)ファイルから「helloJNIC++」を返すことに成功しました。これが私のステップです:

  1. ネイティブ関数を作成し、client.javaに
  2. Netbeans IDEでこのclient.javaをクリーンアップしてビルドし、client.classファイルを作成します
  3. javah –jni[パッケージ]。[クラス名]
  4. 最初の参照と同じようにダイナミックライブラリC++プロジェクトを作成し、client.hをソースファイルに入れ、いくつかのhelloコードを(.cpp)ファイルに入れます--->動作します!

しかし、サーブレット側で同じことをしようとしましたが、機能しません

  1. Servlet.java-> Servlet.class:ok!
  2. Servlet.class-> Servlet.h:失敗!!!! エラー:javax.servlet.GenericServletのjavax.servlet.GenericServletクラスファイルにアクセスできませんが見つかりません

以下は私がこれまでに見つけて試した解決策です、

  • パッケージ名を確認してください

  • sudo gedit / etc / profile、sudo gedit .bashrc、sudo / etc / environment; それらにJAVA_HOMEとCLASSPATHを追加し、それらをソースして更新してから、$ JAVA_HOMEをエコーし​​、$CLASSPATHをエコーし​​て確認します。

  • http://www.jarfinder.com/index.php/java/info/javax.servlet.GenericServletからservlet-api-6.0.14.jarとservlet-api-5.0.16.jarをダウンロードし 、上記の2つを追加します( .jar)by netbeans IDE-> server-> property-> libraries-> Add JAR

この問題を理解する方法を教えてください、どうもありがとうございました!!ところで、私はhessianServletを使用しています

0 投票する
1 に答える
381 参照

java - javah の出力を使用せずに Jni onload を使用するとエラーが発生するのはなぜですか?

私はこのJavaメソッドを持っています:

public static native void processBuffer(ByteBuffer bb);

ジャバで

完璧に働く

Jni オンロードで

上記の javah から生成されるメソッドに対応する最後のメソッドを除いて、この表の他のメソッドは機能します。もちろん、JNI onload を実行すると、fillBuffer というメソッドが呼び出されます。

javah が機能するのに jni_onload が機能しない理由を誰かが説明できますか。私は何か間違ったことをしましたか?jni_onload を使用する他の方法があるため、javah から離れたいと考えています。

ありがとう

0 投票する
2 に答える
5520 参照

android - Android、 javah で jni ヘッダー ファイルを生成、org.opencv.core.Mat が見つからないというエラーを表示

javahJNIヘッダーファイルを生成するためにJavaクラスのネイティブメソッドをコンパイルすると、jniに厄介な問題が発生します。

クラスが org.opencv.core.Mat などのサードパーティ パッケージを使用している場合、javahorg.opencv.core.Mat クラスが見つからないというエラーが表示されます。

OpenCV のサンプル コードは次のとおりです。

まず、コマンドを使用しました

次に、コマンドを次のように変更しました

例外

-bootclasspathopencv libのディレクトリを追加することは便利で必要だと思います。エラーは、パスを 2 つ追加した-bootclasspathか、フォーマットが間違っているためですか?

本当に混乱しています。助けてください、ありがとう!

0 投票する
4 に答える
2799 参照

android - JDK のインストール後に Javah が見つからない (Linux)

Fedora17 で Eclipse (Indigo) を使用して Android 開発をセットアップしようとしています。ネイティブ(NDK / JNI)モジュールのCヘッダーを構築するために、ほとんどすべてが機能しているように見えますが、javahが欠落しているだけです。

ツール チェーンの Windows インストールでは、javac が入っていたのと同じフォルダーにありましたが、Linux マシンではそうではありません。

私は以前にOracleのJDK1.7をインストールしましたが、それがやりたいことのために新しいものであることがわかりました(ただし、javahはありません)、それをアンインストールし、JDK1.6がインストールされました。

何が間違っている可能性がありますか?

0 投票する
1 に答える
148 参照

c++ - C++.hが対応するC++.cppファイルと一致することを確認する方法はありますか?

問題のコードは、Javaとネイティブコード間のJNIインターフェイスです。hファイルはjavahユーティリティによって作成されますが、cppファイルは人間によって作成されます。

Javaパーツの名前が変更された場合、javahは、必要に応じて、対応する名前の関数プロトタイプを生成します。ただし、cppファイルの関数の名前も変更されていることを確認するものはありません。すべて通常どおりにコンパイルされます。この問題は、Javaコードが実行時にネイティブAPIを呼び出す場合にのみ発生します。

コンパイル中にjavahによって生成されたhファイルとhumanによって生成された実装cppファイルの間の不一致をどのようにキャッチできますか?

0 投票する
1 に答える
1193 参照

android - EclipseのAndroidとJavah

Android NDKアプリのヘッダーファイルを生成したいのですが、問題があります。Eclipseで外部ツール構成を使用していますが、エラーが発生します。

添付ファイルでは、外部ツールの構成とEclipseプロジェクトの構造からの画面を囲みます。長い間戦っていますが、行き詰まっています。私が間違っていることを知っている人はいますか?

外部ツールの構成

Eclipseプロジェクトの構造

編集

さて、ついに私はそれで管理します。以下に、正しい構成で画面を囲みます。

ここに画像の説明を入力してください

0 投票する
2 に答える
354 参照

java - 一貫した行末を持つ .h ファイルを生成するように javah を誘導できますか?

javahJava ライブラリの通常のビルド プロセスの一部として実行することにより、.h JNI ファイルを生成する Maven プロジェクトがあります。これらの .h ファイルはソース管理 (git など) にチェックインされ、付随するネイティブ ライブラリのビルドに使用されます。

マイナーな問題の 1 つは、javah実行されているプラ​​ットフォームによって生成されるファイルの行末が異なることです。そのため、Mac OSX 開発者がビルドを実行して (UNIX スタイルの行末で) チェックインすると、Windows 開発者はその後ビルドによってすべての .h ファイルが (Windows スタイルの行末に) 変更されたことがわかります。しかし、それらは実際には変更されていませんjavah。プラットフォームに依存した方法で動作しているだけです。

javahたとえば、.h ファイルを生成するときに UNIX スタイルの行末を常に使用するようにするにはどうすればよいですか? 適切なコマンド ライン スイッチがないようです。

おそらく、実行前にプロパティjavahを明示的に設定することを除いて、実行可能ファイルの起動と同じクラスを手動で起動することが可能です。"line.separator"しかし、それがどのクラスになるのか、どこにあるのかはわかりませんでした。

0 投票する
1 に答える
13701 参照

java - ネイティブ メソッドの Java コマンドで例外が発生する

これをコマンドプロンプトに入力しましたが、ディスク上の位置と完全修飾クラス名があることを考えると、有効なクラス名ではないと言っている理由がわかりません。Java - バージョンは動作し、JDK で最新バージョンの JVM を実行しています。また、CLASSPATH も適切に構成されています。

クラスは次のとおりです。

コマンドライン引数は次のとおりです。

0 投票する
2 に答える
1539 参照

java - LinuxでjavahissueAndroid Ndk

Ubuntu Linux 32ビットシステムを使用していますが、ターミナルにクラスが指定されていません

sanidhya09 @ sanidhya09:〜/ worksheet / NdkFooActivity $ javah -jni -classpath adt-bundle-linux-x86 / sdk / platform / android-4.2 / android.jar; bin / classes / -d jni / com.example.NdkFooactivityエラー:クラスが指定されていませんbash:bin / classes /:ディレクトリです

私もこれを試しました

引数のセクションで私が書いた外部ツールの構成を試しました

Eclipseでも、makeと言ってエラーが発生します。

[HelloJni]エラー127HelloJniC /C++の問題