0
JAVAとC言語の連携
内部処理をC言語、その他をJAVAみたいなプログラムを書けるのでしょうか?かけるのでしたら、コンパイルの時などどういった処理がされるのでしょうか?
0
C言語とJava言語で記述したプログラムを連携させる仕組
みとしてJNIという仕組みがあります。Java側ではメソッ
ドをJava言語で記述するかわりに単にnativeと宣言するだ
けです。でもC側でJNIのルールに従って処理を書くのが最
初はちょっとわかりにくいかもしれません。Java VMがオ
ブジェクトをGCのために移動するということを把握した上
で行儀よくデータアクセスをしなければならないからで
す。
もう少し詳しい内容はwikiのJNIの項目なりJavaのJNIにつ
いてのドキュメントを参照するとよいでしょう。検索すれ
ば「JNIつかってみた」みたいなページもそれなりにある
と思います。
また、JNIより使いやすいJNAというのもあるようです。こ
ちらも調べてみる価値はあるかと思います。
0
「コンパイルの時」は、Cのコンパイルのことか、Javaの
コンパイルのことか?
40
http://www.javaroad.jp/bbs/answer.jsp?
q_id=20140922135619459
こっちの質問も同じなんだが、別の概念で作られたもの
を連携したい場合に重要なのは、どういったインターフ
ェースにするか、というところだ。
(ここで言う「インターフェース」は、Javaの予約語に
あるinterfaceのことではない)
JNIやJNAはJavaの実行時に直接ネイティブのライブラリ
を呼び出す仕組みで、結合度は密なものになる。疎な結
合を考えれば連携はいろいろと考えられ、要件によって
それらがどれくらい適切かが変わってくる。
その辺りを整理してから、考える方がいいだろう。
質問から6ヶ月以上経過しているので、回答を書き込むことはできません。