問題タブ [java-native-library]
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 - Eclipse でネイティブ ライブラリを外部パッケージにエクスポートできない。それはバグですか?
私はEclipseに報告しようとしていましたが、最初にここでチャンスを与えることを考えていました:
外部パッケージを追加すると、以下で指定されている場合を除いて、アプリケーションは参照されているネイティブ ライブラリを見つけることができません。
ワークスペースが 1 つのプロジェクトで構成されていて、プロジェクト フォルダー外のフォルダーから外部パッケージ 'EX_package.jar' をインポートする場合、次の方法でフォルダーをネイティブ ライブラリの場所に割り当てることができます。
パッケージの上にマウスを移動 -> 右クリック -> プロパティ -> ネイティブ ライブラリ -> フォルダーを入力します。
これは動作しません。実行時にアプリケーションはライブラリをロードせず、System.mapLibraryName(Path) も機能しません。
さらに、ユーザー ライブラリを作成し、それにパッケージを追加して、ネイティブ ライブラリのフォルダーを定義しても、まだ定義されていません。
それが機能する場合、私のコンピューターでは機能しないため、大きなバグがあります。Windows PATHパラメーターへのパスの追加など、考えられるあらゆる組み合わせでこれをテストします。何時間もこれで遊んで、同僚に助けてもらいましたが、二人とも空っぽになりました。
さらに、ワークスペース内の他のいくつかのプロジェクトに依存するメイン プロジェクトがあり、それらすべてが同じ 'EX_package.jar' を使用する必要がある場合、 I MUST supply a HARD COPY INTO EACH OF THEMのみになります(私はできる「唯一性を強調しないでください、私はこれにびっくりしました)メインプロジェクトが依存しているすべてのプロジェクトフォルダーにパッケージのハードコピーがあり、それぞれにネイティブパスを構成した場合にのみ機能します!!
これもうまくいきませんでした。
これに対する解決策があることを教えてください、これは私を狂わせます...
アップデート:
誰かが自分でこれを試してみたい場合は、JMF.jar を使用して、XP でネイティブ dll または jmf.properties ファイルを参照してみてください。私は dll ファイルを参照していますが、jmf は必要ありません。 .properties ファイル。
ありがとう、アダム・ゼハヴィ。
java - JMFを使用して、ただしJMFをインストールせずにビデオをキャプチャする方法
私が取り組んでいたビデオ会議プロジェクトでは、JMFを使用してビデオとオーディオをキャプチャし、それを別のエンドポイントに送信しました。問題は、私のチームが製品のユーザーにJMFをインストールさせたくないということでした。
この問題に対する私たちの解決策を共有することは価値があるかもしれないと思いました。できます。それはうまくいきます。あなたへの私の質問は:誰かがそれをするより良い方法を持っていますか?
環境:Windows、XP以降
- JMFforWindowsをダウンロードする
マシンにインストールします
dll
jmfのインストール後、system32フォルダーで次のを見つけます。jmacm.dll
jmam.dll
jmcvid.dll
jmdaud.dll
jmdaudc.dll
jmddraw.dll
jmfjawt.dll
jmg723.dll
jmgdi.dll
jmgsm.dll
jmh261.dll
jmh263enc.dll
jmjpeg.dll
jmmci.dll
jmmpa.dll
jmmpegv.dll
jmutil dll
jmvcm.dll
jmvfw.dll
jmvh263.dll
jsound.dlldll
を一時フォルダにコピーします- ファイルを見つけ
jmf.properties
ます(コンピューターで検索してください) - JMFソースコードをダウンロードする
ソースコードで、次のファイルを見つけます。
JMFinit.java
JMRPropertiesGen.java
Registry.java
RegistryGen.java
- パッケージを作成します。私はそれを呼びます
JMFNoInstall
- 手順6にリストされているファイルを追加します
- Mainというクラスをこのパッケージに追加します。
ファイルはjmf.properties
、メソッドを含むクラスとmain
同じフォルダー、またはメソッドを含むJARアーカイブと同じフォルダーに配置する必要がありますmain
。
はフォルダdll
に入る必要があります。プログラムに、それらがフォルダ内win32
にあるかどうかを確認させることができます。win32
そうでない場合は、どこかからコピーしてもらうことができます。上記のクラスが実行jmf.properties
されるたびに、ファイルが更新されます。Main
これを実行する必要があるのは、プログラムを初めて実行するとき、またはユーザーが新しいキャプチャデバイスを追加する場合に1回だけです。最後に、jmf.jar
ファイルとjmfcom.jar
これは、WindowsJMFのダウンロードに付属しています。クラスパスに含まれています。この時点で行ってもいいです。実際にインストールしなくても、JMFのすべての機能。
これに関連する作業は実際にはそれほど多くなく、カスタムインストーラーに非常に簡単に組み込むことができます。
誰かがこれを行うためのより良い方法を見つけましたか?このようにすることにはいくつかの落とし穴があります。
編集:私が作成したコードのいくつかを共有することは価値があるかもしれないと思いました。もちろん、あなたはあなたが何を処理するためにそれを変更する必要があります。コンパイルされない可能性がありますが、欠落しているものは簡単に再作成できるはずです。しかし、それは人々を助けるための良い出発点かもしれないと思いました。detectCaptureDevices関数は、おそらくほとんどの人に役立つでしょう。このクラスを更新していきます。
DeviceFinder.java
java - JARにネイティブライブラリを含むライブラリをバンドルするにはどうすればよいですか?
Netbeans 6.8でプロジェクトを作成し、いくつかのネイティブライブラリを含むサードパーティライブラリを追加しました。プロジェクトのJARを作成したとき、サードパーティのJARのみが含まれていました。そのnativelibraryはそうではありませんでした。そのため、プロジェクトを実行できません。
この問題を解決するにはどうすればよいですか?
java - ネイティブライブラリ、エラー:このJavaインスタンスは32ビットJVMをサポートしていません
こんにちはstackoverflowコミュニティ、
NetBeans IDE 7.2.1を使用しており、ネイティブライブラリを使用してプロジェクトをコンパイルして実行しようとしています。私のライブラリには32ビットのJVMが必要です。私はWindows764ビットを実行しています。プロジェクトをコンパイルして実行しようとすると、次のことが発生します。
私は構成に行き、次の引数を含めました(役に立たない):
64ビットJREと32ビットJREの両方がインストールされており、プラットフォームマネージャーで64ビットJDKと32ビットJDKの両方を使用できます。
これを解決するための提案はありますか?32ビットJREの前に64ビットJREをインストールすると、問題が発生する可能性があることを読みました。これはそれらの問題の1つですか?(私は確かに最初に64ビットをインストールしました)
eclipse-plugin - Eclipse プラグインからプロジェクト フォルダーにある .so ファイルからメソッドを呼び出す
ネイティブ ライブラリにアクセスする必要がある Eclipse 用のプラグインを開発しました。
/usr/lib
プラグインがアクセスするために.so ファイルが存在することは必須ですか? そこに存在しない限り、プラグインはその中のメソッドにアクセスできません。プラグインを展開しても、構成を変更せずに動作するように、プラグイン自体が .so にアクセスできるようにする必要があります。以前は .so をロードしていましたが、 でSystem.loadLibrary()
フル パスを使用してライブラリをロードした場合でもSystem.load()
、.so ファイルを にコピーしない限り機能しませんでした/usr/lib
。
プラグインを独自のソース フォルダからアクセスさせるにはどうすればよいですか?
java - UnsatisfiedLinkError: ライブラリは読み込まれますが、まだリンク エラーが発生します
2 つの Eclipse プラグインがあります。
plugin-1: .jar のパッケージを他のプラグインに提供します。(C++ ライブラリの Java ラッパー) このプラグインは、[ファイル] -> [新規] -> [その他] -> [既存の JAR アーカイブからのプラグイン] をクリックして作成されました。
plugin-2: plugin-1 のネイティブ ライブラリ .so (
Bundle-NativeCode
ディレクティブは MANIFEST.MF にあります) を持ち、plugin-1 からクラスをインスタンス化します。
(実際に.soをplugin-1に入れてみましたが、.soを含むプラグインプロジェクトの外で、plugin-1 MANIFEST.MFのBundle-NativeCodeディレクティブを使用しても、ライブラリをロードできないようです。 plugin-1 を使用するすべてのプラグインに .so をバンドルする必要があると思います。)
plugin-2 からインスタンス化する plugin-2 から JUnit テストを実行しています。MyClass
これは、plugin-1 からインスタンス化MyLibraryClass
します。MyClass
ネイティブ ライブラリを正常にロードし、ネイティブ ライブラリのロードまたはインスタンス化から例外がスローされることMyLibraryClass
なくインスタンス化します。この場合、プラグインは実行していません。JUnit テストだけです。UnsatisfiedLinkError
MyLibraryClass
(製品構成を使用して) plugin-2 を実行し、 instanceiate を実行するとMyClass
、ネイティブ ライブラリは正常に読み込まれますが、UnsatisifiedLinkError
when MyClass
instantiatesが発生しますMyLibraryClass
。この場合、投稿で説明されているクラスを使用して取得した出力に基づいて、ライブラリがロードされていると思います。ロードされている JNI ライブラリのリストを取得するにはどうすればよいですか?
注: 私は Eclipse 3.6.1 を使用しています。
これは、私がやろうとしていることの本質を示すコード サンプルです。
java - Web アプリのネイティブ ライブラリはどこに配置しますか (Caucho Resin 内)?
Resin がそれらをロードするために、Web アプリのネイティブ ライブラリはどこに行きますか?
java - なぜNativeLibraryとNativeのエラーを表示する日食火星?
githubのvlcj playerを使って動画だけでなく音声も再生したいです。
これについては、YouTube のビデオ チュートリアルを参照しました。ビデオ チュートリアルでは、NativeLibrary と Native を使用する必要がありました。しかし、私のEclipse IDEは、以下のコードの両方の行でエラーを示しています:
java - Aparapi、java.lang.UnsatisfiedLinkError: libaparapi_x86_... 依存ライブラリが見つかりません
4台のコンピューターでaparapi Javaプログラムを実行してみます。2台のコンピュータは完全に実行できますが、他の2台のコンピュータはスローしjava.lang.UnsatisfiedLinkError
ます:
`
`
java - Java でのアセンブリ コードのインライン化と、Java で 32 ビット OS と 64 ビット OS を区別する方法
大学でのタスクのために、Java コードでアセンブリ インジェクションを記述する必要があります。ネイティブ関数を持つクラスがあります
次に、コマンド javac -h AsmOR.java を使用してクラスをコンパイルし、ヘッダーを取得しました。
このアセンブリ コードをアセンブリを使用しましたが、関数の r8 および r9 パラメータがなぜなのかわかりません。javadoc を読み込もうとしましたが、だめです。
また、ダブルサムにコプロセッサを使いたかったのですが、うまくいきません。
これを行う方法と、システムの 32 ビット バージョンと 64 ビット バージョンを区別し、バージョンに応じて dll ライブラリをロードする方法は?