• 締切済み

JavaからCプログラムを結合

JavaからCプログラム・またCプログラムからJavaを実行する方法を模索しております。JNIというのが見つかったのですが、これは、C→Javaでも可能なのでしょうか? また、各異言語にて他言語の処理を実行した場合、戻り値やOUTパラメータなどの引継ぎは可能なのでしょうか? JNI以外の方法含め、ご存知の方いらっしゃいましたらご教授宜しくお願い致します。

  • Java
  • 回答数1
  • ありがとう数3

みんなの回答

回答No.1

JNIであればC→JAVAの呼び出しも可能です。 簡単に言えばJavaVMをCから生成することでJavaのクラスを呼び出せたりすることが可能となります。 JNIを簡単に説明するのは難しいので書籍等で学ばれることをおすすめします。 JNI意外にはJavaとCのやりとりを行うことは出来ないと思います。(知らないだけかもしれませんが。。。) JNIはJavaの標準機能なのでJNIを知っていれば問題ないと思います。

参考URL:
http://www.alles.or.jp/~torutk/oojava/maneuver/2001/jni/jni.html

関連するQ&A

  • C#で作ったライブラリをJavaで呼び出したい

    JavaからC#のプログラムにファイルパスを渡し処理させて、戻り値を返す。 ということをやりたいのですが、JavaとC#の連携方法については全くの素人で困っています 助けてください

    • ベストアンサー
    • Java
  • Javaで

    相手のコンピューターにこっちにあるプログラムとかを実行してもらえますか? たとえばC言語で書いたプログラムの実行ファイル a.outがあったとします。 そして相手のコンピュータにipアドレスを指定して この実行ファイルを実行してもらうようなコマンドとかjavaのメソッドとかC言語の関数とかありますか? JavaやC言語でなくてもそのような方法があるならどれでもかまわないので教えてください。

    • ベストアンサー
    • Java
  • Javaのプログラムから、C言語のプログラムを呼び出す方法

    こんばんわ。 もうすぐ2008年もおしまいですね。 本日お聞きしたいのは、タイトルの通り、 Javaで書いたプログラムで、C言語のプログラムを呼び出し、 実行するプログラムはどのように書いたらよいかということです。 実際に行いたい内容は以下の通りです。 ・JavaからC言語で書かれたNN.exeを呼び出し、実行する。 です。 どのようなプログラムで呼び出すことができるのでしょうか。 あまりプログラムの知識がなく、説明に不備がありましたらすいません。 お力添え、宜しくお願いいたします。

  • 他言語のプログラムを繋げて実行することは?

    C言語とVBなど他言語のプログラムを繋げるかして実行できますか?

  • Java JNI C++リンク dll読み込まない

    お世話になっております 何度も質問して申し訳ないですが、わかる方いらっしゃれば ご回答よろしくお願いいたします。 現在JavaでJNIを使用し、呼び出したC++からハードウェアへ 接続するというプログラムを開発しております。 その際、C++をdll形式にして、そのdllをJavaで呼び出すような形なのですが 私が使用しているコンピュータ(Windows 7)では、ハードウェアへの接続ができています。 コマンドを送信し、レスポンスを取得し、Javaのプログラムで表示ができます。 しかし、別のコンピュータ(Windows XP)で、開発したプログラムを実行すると dllを読み込む時点で下記のエラーが出てしまいます。 java.lang.UnsatisfiedLinkError: no JNI001 in java.library.path JNI001がC++で作成したdllです。 JNI001.dllは、実行したプログラムと同じフォルダにありますので、おかしいなと思いまして C:\Windows へ入れてみても結果は変わりません。 私が使っていたコンピュータのeclipseをまるまるコピーして実行しても効果なし。 環境変数も私のコンピュータとほとんど変わりません。 XPのJavaをインストールし直しても変わりません。 フォルダ階層やフォルダ名などチェックしましたが、7とXPで変わった点もないように思います。 そこで、少し気になったのですが、 現在開発中のプログラムは Java → JNI001.dll → ○○.dll → ハードウェア ○○.dllはハードウェアを動かすためのdllです。 上記の仕様に問題があるのでしょうか。 それでは私のコンピュータで接続できている理由がわからなくなりますが ・・・もう、なにもわかりません どうか、ご教授宜しくお願い致します。

  • Cで作られたDDLをJAVAで

    初歩的な質問で申し訳ないです。 現在配属しているプロジェクトでは、サブシステムが2つに分かれており、C言語で開発されたシステムとJAVAで開発されたシステムに分かれております。(業務が違いシステム的にも関連はありません) しかし、共通で使えそうな計算ロジックをコーディングしたDDLがC言語のシステムの方にあり、JAVA側でそれを使いまわしできないか?と言うことを言われました。 ネットで調べた所、JNIという技術を用いて可能かも?とは思ったものの、ネットの内容を見ると、JNIの説明の所に載っているC言語のソースにはJNI用に組まれたような(JAVAで用いる事を想定されて作られているかのような)ロジックがあるため、 結局既存のDDLは使えなく、JAVA用に作成しなおさないといけないのかな? とも思いました。 そこで質問ですが、もともとC言語のシステム内で使うことを想定されたDDLをJAVA側のシステムで使う場合、JAVA用に再作成せずに使うことは可能なのでしょうか? 初歩的な質問で申し訳ありませんが、知っていたら教えて頂きます様、宜しくお願い致します。

  • Javaでプログラムをコマンドから「プログラム名」だけで起動できる?

    普通はコンパイルしてtest.classファイルというファイルを作って >java test と、実行すると思うのですが、C言語でコンパイルした実行ファイルみたいに、Javaで作ったプログラムを >test みたいに実行する方法はあるでしょうか?

    • ベストアンサー
    • Java
  • javaでc言語を実行

    java初心者です 10年以上前にC言語で作成されたプログラムを,GUIの部分だけ JAVAで組み直したいと思っております そこで質問なのですが、例えばC言語で作成されたHELLO WORLDを表示するような 実行ファイルをJAVAで作成したボタンで実行が可能かどうか。 もし可能ならば、その方法について教えて頂きたいのですが よろしくお願いします

  • C言語のプログラムをJavaに

    C言語のプログラムをJavaのプログラムに直したいと思います。 で、どこから手を付ければよいでしょう? ヘッダファイルはどのように扱えばよいでしょうか? どうぞご教授お願いいたします

    • ベストアンサー
    • Java
  • 麻雀ゲームプログラムを組みたい

    麻雀ゲームのプログラムを組もうと思っているのですが、点数判定のアルゴリズムについて解説しているサイトなどはないでしょうか?私もいくつか探してみたのですが、なかなかこれだというものがありません。言語はjavaとC#を使っていますが、C++など他言語での解説でも問題なく、考え方や効率的な順番などが解説されているものを望んでいます。どなたか知っている方がいましたら、教えて下さい。

専門家に質問してみよう