• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Windows上でLinux向けのJNA開発)

Windows上でLinux向けのJNA開発

このQ&Aのポイント
  • Windows上でLinux向けのJNAを使ったコードの開発方法
  • JavaでJNAを使ってWindows上のJavaとCygwin上のネイティブコードを連携する方法
  • Win上でEclipseを使いながらCygwin上で動くJavaプロジェクトを開発する方法

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 実は私も昔、JNIを使ったことがあります。 しかもWindowsとLinuxの両方のコードを書きました。 そのときはWindows環境ではVC++、 Linux環境はgccでした。 Windows環境でコンパイルしたバイナリは当然Linuxではうごきません。 たとえCygwin用であっても! ですからWindows、Linuxそれぞれでコンパイルすることになります。 C言語で書いた部分はTCPまたはUDPで通信する部分でしたので WinでもLinuxでもさほどは変わらなかったのですが やはり違うところは違います。 その部分はあきらめてサクっと思い切って違うソースにして コンパイルのときに振分けるようにしました。 #define や #ifdef など Cのプリコンパイラを駆使し、また コンパイルにAntを使って コンパイル環境を自動判別させて Windows環境であればWindowの、 Linux環境であればLinux用のコンパイルバッチ(makefile)を 起動するようにします。 まぁ、まずはWindowsでうごくものを作りましょう。 其の後でLinux環境を用意するか VMWareなどをつかってWindows上にLinux環境をつくり そこでLinuxでうごくプログラムに改造して それぞれでうまくコンパイルできるようにします。 そしてJNIを呼び出す側、 すなわちJava側で WindwsのJNIを呼び出すクラス、 LinuxのJNIを呼び出すクラス をそれぞれつくり、 なんらかの方法で実行している環境がWinかLinuxかを判断して Win用かLinux用かどちらかのJNI呼び出しクラスを呼び出す というのが妥当な腺かと思います。 すくなくともわたしはそうしました。

その他の回答 (2)

回答No.3

No.1,2です。 ちなみに、JNIはJNAの前の技術

回答No.1

Cygwinとリンクさせるのは・・・ かなり厳しいんではないかと思うのですが gcc のWindowsでの実装であるMinGW というのがあります。 MinGWで検索すればいろいろ出てきます。 EclipseでMinGWを使う方法も出て来ます。 こちらをつかってみてはいかがでしょうか。

pokrsy
質問者

お礼

参考になりました。 しかし、未だにJNI等を使う場合のクロスプラットフォーム開発においてどういう環境を構築すればいいのか、 主流な方法が分からないでいます。 とりあえずMinGWをEclipseから使って、ライブラリの依存関係等に注意しながら書いていくつもりですが、 何か見逃しがあればLinux上で動かないという事になってしまうので難しいと思いますし、 どういった点に注意すればいいのかというまとめた記事も見つからないので戦々恐々としながらです。 引き続き何か情報を募集します。

関連するQ&A