作成したクラスを 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
Java Support Interact with the Java virtual machine. DOCUMENTATION ARTICLE Objective-C NSJavaSetup Loads the Java virtual machine with specified parameters. DOCUMENTATION ARTICLE Swift NSJavaClassesForBundle Loads the Java classes located in the specified bundle. DOCUMENTATION ARTICLE Swift Tuning Your Java Code Guidelines for improving the performance and efficiency of code. NSJavaSetupVirtualMac
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ページを開く