作成したクラスを JAR にまとめる際にネイティブライブラリをルートディレクトリにいれて manifest.cf を以下のようにすれば、任意のネイティブライブラリ(下の例では a.dll, b.dll, c.dll) を含めた状態で実行可能な JAR が作成可能です。 Manifest-Version: 1.0 Bundle-NativeCode: a.dll;b.dll;c.dll Main-Class: Main 作成時のファイル構造: <root directory> – Main.class – a.dll – b.dll – c.dll – manifest.cf 作成コマンド: jar cmf manifest.cf out.jar Main.class a.dll b.dll c.dll 参考: – How to set Bundle-NativeCode in manife
Xcodeなんて重くてやってられないので、ターミナルで直接gccを叩いてJNI用に共有ライブラリを作ってみようと、ふと。でも、-sharedがないと怒られてしまってしょんぼり。結局、OSXでのオプションは-sharedではなく-dynamiclibでした。 こんな感じ。 gcc -dynamiclib -o libbar.jnilib -I /System/Library/Frameworks/JavaVM.framework/Headers bar.c 追記 Macintoshでもコンパイルに-fPICか-fpicをつけた方がいいのかも。と思ったら、-fpicはサポートされていないようです。-fPICとみなされました。(gcc 4)
JNIとは JNI(Java Native Interface)とはJava言語で開発されたプログラムから、 他の言語で開発されたネイティブコードのプログラムを利用するためのAPIである。 ネイティブコードとは、そのプラットフォームで実行可能なプログラムのこと。 JNIを利用することで、Java上で実行するのには速度面から難しいコードを、 ネイティブコードに書き換え、その部分だけ高速に実行できる。 また、JavaVMをネイティブコードから起動させることができるので、 Cのコードを実行していると見せかけてJavaのコードを呼ぶことができる。 #しかし、この場合はその環境にJREがインストールされている必要がある。 MacOSX(Tiger)でのJNI利用環境 当方の環境を以下に記す。 マシン:MacBook Intel Core2Duo 2GHz JREのバージョン:1.5.0_07 jav
Showing results for "{{results.suggestedQuery.query}}". Search instead for "{{query}}"? Did you mean "{{results.suggestedQuery.query}}"? Showing results from within “” View all results All Filtering: {{1 + results.length}} {{results.length}} results for "" Filter Show beta No results were found. Please try a different keyword. Please enter your search query. No results match the filter you have se
JNI (Java Native Interface)は、JavaコードとCの派生言語(C、C++、Objective-C)で書かれたコードを統合するための標準メカニズムです。これを使用して、データにアクセスしたり、ネイティブな要素をJavaユーザインターフェイスに組み込んだり、ネイティブなアプリケーションからJava仮想マシン(JVM)を作成したりすることができます。このテクニカルノートでは、Mac OS XでのJNIプログラミング特有の手法や問題を、必須事項(および禁止事項)の明示的な例を挙げながら説明します。すでにMac OS X上でJNIを使用している場合、またはMac OS X上のJava以外のフレームワークの1つとのインターフェイスが必要なアプリケーションを、Java 1.4以降で作成している場合は、このテクニカルノートをお読みください。また、アプリケーションからJavaのライ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く