タグ

JNAに関するkimukou_26のブックマーク (14)

  • JNA を Android で使う方法 - yukobaのブログ

    C言語のライブラリを Java から使うときに便利な https://github.com/twall/jna (JNA) を Android で使う方法のメモです。(追記:JNA 4.0.0 に合わせて大幅に書き換えました) JNA は 4.0.0 現在、Android に対応していますが、ドキュメントがないです。3.4.0 当時、Android 対応をしようとして、中途半端になっていて、3.5.1 でその残骸が残っていましたが、4.0.0 ではちゃんと対応しています。 手順 https://github.com/twall/jna/raw/master/dist/android-arm.jar をダウンロードして、解凍して、libjnidispatch.so を取り出します。 libjnidispatch.so を自分の Android アプリのプロジェクトフォルダの libs/arm

    JNA を Android で使う方法 - yukobaのブログ
  • Windows64bitでJNAでJavaからC++コード呼び出そうとしてハマった話 - きしだのHatena

    Javaからネイティブコード呼び出そうと思ったんです。 で、あんまりやる気もないんで、JNIじゃなくてJNAでやろうと思ったんです。 Windows7 64bitで。 ということで、まずMinGWインストールしたんです。 http://www.mingw.org/ んで、NetBeans7.1で「オプション」の「C/C++」のところの「ツールコレクション」で「ベースディレクトリ」に「MinGW\bin」を指定したんです。 それから「C/C++動的ライブラリ」プロジェクト作って、「newfile.c」って名前でこんなコード書きました。 #include <stdio.h> void hello(){ printf("test\n"); } それから「構築」ってやるとDLLができたんです。 あとはJavaからの呼び出しコード書こうと思って、まずはJNAのサイトからjna.jarをダウンロードし

    Windows64bitでJNAでJavaからC++コード呼び出そうとしてハマった話 - きしだのHatena
  • JNA で java の SDL binding を書いてみた - 想像力の欠如は深刻な欠点の一つである。

    JNA は Java Native Access の略で、JNI を使わずにネイティブコードな共有ライブラリにアクセスする方法を提供するライブラリ。 JNI みたいに Java のために C/C++ コードを書かずに済むのがいいところ。 やってみた感じとしては、C# の P/Invoke の方が解りやすいなぁと思った。 書き方は JNAerator に教わったんだけど、JNAerator はあんまり思ったようには仕事をしてくれないみたい。 何故かってこういう関数の定義があるとするよね: extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); JNAerator は SDLCALL が返り値の型だと思い込んでこんな風に書いてしまう: SDLLibrary.SDLCALL SDL_Init(int flags); と憤慨してたんだけど、これは j

    JNA で java の SDL binding を書いてみた - 想像力の欠如は深刻な欠点の一つである。
  • Browse code samples

  • 簡単にJavaからネイティブコードを使えるJNA - in a Stream

    biz-Streamを使っていると,何かと画象イメージを扱う機会があります. biz-Stream を使ってPDFに画像を読み込む時に、画像編集が必要になったり, biz-Stream が生成したPDFを画像化して表示する時に、 画像編集が必要になったりする場面があるのではないでしょうか。 Javaで書かれた画像編集のソフトもありますが、 OpenCVなどの高機能なネイティブソフトを使用したいと思う方がいるかもしれません. そのような場合,Javaからネイティブコードを使用する方法として, JNI (= Java Native Interface) がありますが, JNI を使うには煩雑なコーディング実装が必要で,手間がかかります. こんなとき,Javaからネイティブコードのライブラリを使用する仕組み JNA (= Java Native Access) が便利です. 使い方は簡単で,ダウ

  • miniupnpc for JavaとJNAeratorのお話 - syuu1228's blog

    miniupnpcというCなUPnPのライブラリがあって、これは結構多くのルータをサポートしてて色々なオープンソースアプリで(もしかしたら商用アプリでも)用いられているんだけれど、Javaバインディングがない。 どーせ小さなコードなので、JNIするのもそんな面倒じゃないだろ、と思って書き始めてみた。 が、途中で、JNAという別のネイティブサポートの実装があって、これ用のバインディングをJNAeratorで全自動生成出来るという事に気がついた。 これは中々優秀で、たったこれだけのシェルスクリプトでバインディングが生成出来た: #!/bin/sh UNAME=`uname` if [ $UNAME = "Darwin" ]; then LIBRARY=libminiupnpc.dylib elif [ $UNAME = "Linux" ]; then LIBRARY=libminiupnpc.

    miniupnpc for JavaとJNAeratorのお話 - syuu1228's blog
  • [java][c++] C++の共有ライブラリをJavaから呼び出す - dreammindの日記

    C++を使って作成した共有ライブラリをJavaから簡単に利用する方法を紹介します。JNI(Java Native Interface)を使うよりはるかに簡単です。 用意するものは、jnaerator: http://code.google.com/p/jnaerator/ です。 jnaeratorは、JNA(Java Native Access): https://jna.dev.java.net/を利用して簡単に共有ライブラリへのアクセスを実現しています。 C言語についてのJavaから共有ライブラリへのアクセスの情報はいろいろとあったのですが、C++を使った共有ライブラリの情報が少なかったので、この記事を書きました。 C++のソースを作成. ここは定番のHelloWorldでしょうか。 $ vi HelloWorld.h #ifndef _HELLO_WORLD_H_ #define

    [java][c++] C++の共有ライブラリをJavaから呼び出す - dreammindの日記
  • zxaの日記

    Voyage MPD Starter Kitによるネットワークオーディオ環境をちょっと変えようと、より小さくでarmな、Cuboxを購入しました。 Voyage MPD Starter Kitでははまらなかったがずいぶんはまりました。 ブートしない Voyage MuBox {Voyage MPD on CuBox}にしたがってUSBにイメージ(0.9.1 - 9 Jul 2013)を展開したけど、 ブートしない。 すばらしいことにどうやらMicro USBとPCをつなぐとUSBシリアルチップが入っていてシリアルでつながるので、つないでみるとものの見事にUSBが認識していなかった。 USB2.0、USB3.0のUSBメモリだとだめで、USB1.0のころのUSBメモリだと認識しました。u-bootとの相性でしょうか。 mpdがおかしくなる MuBOX + DragonFlyで、聞いていると、

    zxaの日記
  • jna: Documents & files: latest (SVN head)

    kimukou_26
    kimukou_26 2010/12/02
    ソースとかDLできる
  • mono's Tech Blog » JNIよりずっとお手軽なJNA(Java Native Access)

    JavaでCのダイナミックリンクライブラリにアクセス 僕は正直なところ,C言語が苦手. どうしても必要なときでない限り,Javaなどの使い慣れている言語を使いたいところ. ただ,やはりどうしてもCのライブラリを使いたいときが出てくるケースもある. そういうときに, Cで書くべき箇所がほんの一部なのにプロジェクト全体をCで書くのはナンセンス. そこで,JNIなどの出番となるわけでが,これがけっこう面倒で書くコード量もそこそこ多い. 実を言うと,昔少し触れた程度でよく分かってなかったり… で,色々便利な道具が充実している昨今,何かそれに変わるものが無いか探していたところ,JNA(Java Native Access)というものを発見. Java Native Access (JNA) とは、Java プログラムがJava Native Interfaceを用いずにネイティブの共有ライ

  • クラス・ローディング問題の神秘を解く 第2回: クラス・ローディングに関する基本的な例外

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    クラス・ローディング問題の神秘を解く 第2回: クラス・ローディングに関する基本的な例外
  • Groovy+JNA - uehaj's blog

    JNA(Java Native Access)というものがあります(https://jna.dev.java.net/)。これはJavaから動的にDLL中の関数を呼び出すものです。「動的に」ということの意味は、しち面倒くさくバグも作り出しやすい、悪名高きJNI(Java Native Interface)を使わずに、そもそもCコンパイラなどを一切使わずに、DLL(Unix環境ではso)に含まれる関数を呼び出すことができるということです。jnaの配布物(jna.jar)にはさまざまなOS用のディスパッチャが含まれているので、プラットフォーム独立かのように錯覚するぐらいです*1。 ということで、動的つながり(強引)ということで、Groovyから呼んで見ます。 jna.jarをCLASSPATHに通せば*2たとえば、Pure Javaだけではできない「カレントディレクトリを移動する」という操作を

    Groovy+JNA - uehaj's blog
  • GroovyでRijndael(Rijn.dll)を使用した暗号化・復号化 - みちしるべ

    暗号化ソフトのうちの1つにファイル暗号化ソフト「ED」がある。 名前が微妙なのだが・・・ バッチ化したいだが、スクリーンセーバーが動作してる場合やロックがかかってると、 どうも待ちになってしまうようだ。 なので、EDでも使っているRijndael(Rijn.dll)を使用した暗号化・復号化するGroovyスクリプトを 作ってみた。 結論としては、EDとの互換性はない。orz EDで暗号化したものを、Rijndael(Rijn.dll)で復号化はできないし、 逆に、Rijndael(Rijn.dll)で暗号化したものを、EDで復号化もできない。 1. DLLのダウンロード ファイル暗号化DLL「ラインドール(rijn.dll)」からダウンロードする。 2. PATHの設定 解凍したディレクトリにPATHを設定する PATHが設定されているディレクトリにコピー 3. JNAの設定 JNAを使用

    GroovyでRijndael(Rijn.dll)を使用した暗号化・復号化 - みちしるべ
  • GroovyでWindowsのスクリーンセーバーの待ち時間を変更する - みちしるべ

    C言語も使えるし、JNIでも全く問題ない。 一般的なJNIの使い方としてのJavaからNative(C)の呼び出すのは もちろん問題なく使える。 逆に、Native(C)からJavaの呼び出しだって、どんとこいだ。 でも、JNIではなくて、JNAを使う。 JNAを使ったことがないので使ってみたいというのと、 さんざんJNIで痛い目を見てきたからだ。 まぁJNAにしても。やりすぎれば痛い目に合うだろうけど(^^; ダウンロード Java Native Access (JNA) 3.2.7のjan.jarとplatform.jarをダウンロードした。 インストール 以下にコピー C:\usr\lib\sun.com\jna\3.2.7\jna.jar platform.jargroovyの実行時のCLASSPATHに上記の2つのjarを追加 最初のソース import com.sun.jna.

    GroovyでWindowsのスクリーンセーバーの待ち時間を変更する - みちしるべ
  • 1