- ベストアンサー
JavaのクラスをCアプリケーションから起動。。?
Javaにて、引数として渡されたURLに 接続するクラスを作成します。 それをCで作ったアプリケーションから、 URLを引数として渡し、起動させるようなものを 考えています。 この時、C言語からJavaで作った上記のようなクラスを 呼び出すにはどうしたらよいのでしょうか。 また、この場合のJavaの処理として、 指定URLに対して、GETではなく、POSTを行うには どのようにすれば可能でしょうか。 具体的な方法、参考になる文献など、 ご存知の方、いらっしゃいましたら、ご教授願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問の内容からわからない点が2つあります。 1.Javaのプログラムはアプリケーションなのかアプレットなのか。 2.Cのプログラムはそのマシン上で動くのか、CGIとしてサーバで動くのか。(KanataさんはCGIと考えたようですね。) そのマシン上で動くCのアプリケーションから同じマシンにあるJavaのクラスを呼び出すことはできるようです。 jclass FindClass(JNIEnv *env, const char *name)という関数がJNIにあります。 くわしくは参考URLを見てください。 質問がかなり高度な内容なので、これくらいしかアドバイスできません・・・。 GET,POSTの質問はちょっとボクにはわかりません。 それではがんばってください。ヾ(^o^)
その他の回答 (1)
基本的には、無理ではないでしょうか。なぜなら、 C言語で書いたアプリケーションは、CGIとして サーバ側で実行されるのにも関わらず、Javaで 書いたクラスは、クライアント側で実行するから です。 まぁ、クライアントのIPアドレスをしっかりと取得 できるのならば、C言語側で取得しておき、そのIP アドレスのJavaクラスを呼び出す・・・なんてことが できるかもしれませんが、少なくとも私の知識では そのようなことはできないと思います。 それから、Javaの処理として、GETではなくPOSTを 使用するのはURLConnectionを使用すれば、取得 できるようです。出力ストリームから読みとるよう ですよ。 ではでは☆
補足
ご回答、ありがとうございます。 実は、Cのアプリケーションと、Javaのクラスは 同じハード上にあり、前者からのトリガによって、 後者が起動して、URLに接続する。。。というもの なのです。 つまり、ローカルでCからJavaクラスを呼び出す方法、 という事です。 舌足らずで申し訳ありませんが、 ご存知でしたらお知恵をお借りいたしたく思います。 POSTに関しては、参考になりました。 これから実験してみます。 ありがとうございました。
補足
ありがとうございます。 1について、Javaはアプリケーション、です。 2については、マシン上で動く単純なユーザインタフェースプログラム、を想定しています。 全てJavaかCで製造したいところなのですが、 諸々の事情により、このようなややこしい構成となっています。 FindClassですね。 早速、お教えいただきましたURLを覗いてみます。 ありがとうございました。