問題タブ [java-native-interface]
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コードで例外をスローする最良の方法は?
JNI コードで例外をスローするための一貫した簡単な方法が必要です。チェーンされた例外を処理するもの (env->ExceptionOccurred メソッドから暗黙的に、またはパラメーターによって明示的に、どちらの方法でも良い)、これを行うたびにコンストラクターを検索する手間を省くことができます。上記はすべて C であることが望ましいですが、必要に応じて C++ から翻訳することもできます。
SOの誰かが共有できるこのようなものを持っていますか?
java - JNI を使用した Swing 透過性
JButton を含むフレームを表示する単純な Java アプリケーションを作成しようとしています。ウィンドウに透過性を追加するために JNI を使用しています。ウィンドウは透明ですが、ボタンは透明ではありません。また、ウィンドウを移動すると、ボタンがウィンドウと一緒に移動しません。JLabel でも同じことが起こります。JButton の代わりに Button を使用すると、問題なく動作します。
ネイティブ コード:
MyFrame.java
透明度.java
c - C++ の代わりに C で WMI を使用する方法を知っている人はいますか?
このためだけに C++ を再学習する必要はありません。どんなライブラリ/URLも素晴らしいでしょうし、そうです、Googleはここではあまり役に立ちませんでした:-(
これは、私の製品 (Java ベース) が Microsoft の Hyper-V 仮想化プラットフォームのサポートを提供する予定のプロジェクトです。Web サービスを提供する VMware とは異なり、Hyper-V API は WMI の単なる拡張機能です。Java を COM/WMI に統合するための J-Integra などの商用ツールは使用したくありません。私が見つけたいくつかのオープン ソース ツールはかなり時代遅れです。
私は、C++ よりも C で JNI を使用したいと考えています。WMI操作にCを使用するためのライブラリなどを見つけることができる場所を知っている人はいますか? Python クライアントと同じように使用できますか? (そして、はい、C は OOP 言語ではないことを知っています :D )。
前もって感謝します。
java - データを新しい RMI スレッドに自動的にコピーする方法は?
少しrmiクライアントサーバーアプリケーションを適応させています。私はいくつかのことを書いています:
特別なことは何もありませんが... 私は新しい RMISecurityManager に手を入れました。これは JNI メソッドを呼び出し、別のユーザーのアクセス許可をチェックします。
サーバークラスで私はそれをやっています:
このクラスは、サーバーのメイン スレッドで動作するようです。問題は、そのサーバークラスに接続してレジストリを検索しようとしたときです。私はその例外を受け取ります:
IMHO の意味は、スレッドが (暗黙的に) 作成され、NativeRMISecurityManager をデフォルトの SecurityManager として取得することです。
誰かがそれに関して何かアドバイスがありますか?
java - JNI を使用して C プログラムから System.out に端末出力をリダイレクトするにはどうすればよいですか?
標準出力に出力する JNI 経由で C ライブラリを呼び出しています。この出力を System.out にリダイレクトするにはどうすればよいですか?
java - JNI モーダル ダイアログを呼び出すと、タスクバー アイコンが無効になる
Windows XP 上の Java アプリケーション (JRE 1.5.0_12) で、ネイティブ メソッドを呼び出します。
... Visual C++ 6.0 .dll に存在します。アプリケーション モーダル ウィンドウが表示されます。問題は、このウィンドウにフォーカスがある間、アプリケーションのトレイ アイコンがマウス クリックに反応しないことです。このウィンドウが表示されると、ユーザーは添付するイメージを選択するために別のアプリケーションに切り替えてから、このアプリケーションを復元することがよくあるため、これは問題です。
java - アプレットかアプリケーションかを知る方法
アプリケーションとアプレットで使用されるクラス内にこのコードがあります。
残念ながら、アプレットがこのコードをロードすると、「extmapi」ライブラリをロードできないため、エラーが発生します。
このエラーを回避するには、実行しているコードがアプレットなのかアプリケーションなのかを知る必要があります。
アプレット内で実行しているかどうかを知るにはどうすればよいですか?
java - Javaオブジェクト内にネイティブポインタを格納する「正しい」方法は何ですか?
Javaオブジェクト内にネイティブポインタを格納する「正しい」方法は何ですか?
int
ネイティブ ポインターのサイズが 32 ビット以下であることがわかっている場合はポインターを Java として扱い、ネイティブ ポインターのサイズlong
が 64 ビット以下であることがわかっている場合は Java として扱うことができます。しかし、これを行うためのより良い、またはよりクリーンな方法はありますか?
編集:JNI関数からネイティブポインターを返すことは、まさに私がやりたくないことです。むしろ、ネイティブ リソースを表す Java オブジェクトを返したいと思います。ただし、私が返す Java オブジェクトにはおそらくポインターを含むフィールドが必要であり、元の質問に戻ります。
または、代わりに、JNI 関数がネイティブ リソースへの参照を返すためのより良い方法はありますか?
java - JNIを使用して現在のJavaスタックを複製可能
バイトコード インストルメンテーションを使用して呼び出される前に、メソッドに渡された引数を記録しようとしています。
現在、Javaコードを使用して計測している間、最初にすべての引数をローカルにポップし、次にそれらを2回プッシュする必要があります(1回は記録するメソッド用で、この場合はすべてのプリミティブ型をボックス化された型に変換する必要があります)実際のメソッド呼び出し)。
私が理想的にやりたいことは、メソッド呼び出しのためにプッシュされた引数の数に対してスタック全体を複製することです。ただし、jvm バイトコードの dup() 命令は、スタックの最上位の値の複製のみを許可します。JNI を使用してスタック全体を一度に複製することは可能ですか?
java - JNIを使用してOutlookの連絡先を取得する
Outlook Express以外のOutlookアプリケーションから連絡先のリスト(および連絡先のみ)を取得する必要があります。私の問題を解決できるさまざまなライブラリを見てきましたが、どれもオープンソースです。JNIを使用してこの問題を最初から解決する価値があるかどうか疑問に思いました。私はこのフレームワークを使用して開発したことはありません。その経験はありますか?または、より良いアプローチを知っていますか?