• ベストアンサー

JavaのクラスをCアプリケーションから起動。。?

Javaにて、引数として渡されたURLに  接続するクラスを作成します。 それをCで作ったアプリケーションから、  URLを引数として渡し、起動させるようなものを  考えています。 この時、C言語からJavaで作った上記のようなクラスを  呼び出すにはどうしたらよいのでしょうか。 また、この場合のJavaの処理として、  指定URLに対して、GETではなく、POSTを行うには  どのようにすれば可能でしょうか。 具体的な方法、参考になる文献など、  ご存知の方、いらっしゃいましたら、ご教授願います。

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

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

質問の内容からわからない点が2つあります。 1.Javaのプログラムはアプリケーションなのかアプレットなのか。 2.Cのプログラムはそのマシン上で動くのか、CGIとしてサーバで動くのか。(KanataさんはCGIと考えたようですね。) そのマシン上で動くCのアプリケーションから同じマシンにあるJavaのクラスを呼び出すことはできるようです。 jclass FindClass(JNIEnv *env, const char *name)という関数がJNIにあります。 くわしくは参考URLを見てください。 質問がかなり高度な内容なので、これくらいしかアドバイスできません・・・。 GET,POSTの質問はちょっとボクにはわかりません。 それではがんばってください。ヾ(^o^)

参考URL:
http://java.sun.com/products/jdk/1.2/ja/docs/ja/guide/jni/index.html
noname#744
質問者

補足

ありがとうございます。 1について、Javaはアプリケーション、です。 2については、マシン上で動く単純なユーザインタフェースプログラム、を想定しています。 全てJavaかCで製造したいところなのですが、 諸々の事情により、このようなややこしい構成となっています。 FindClassですね。 早速、お教えいただきましたURLを覗いてみます。 ありがとうございました。

その他の回答 (1)

noname#9414
noname#9414
回答No.1

基本的には、無理ではないでしょうか。なぜなら、 C言語で書いたアプリケーションは、CGIとして サーバ側で実行されるのにも関わらず、Javaで 書いたクラスは、クライアント側で実行するから です。 まぁ、クライアントのIPアドレスをしっかりと取得 できるのならば、C言語側で取得しておき、そのIP アドレスのJavaクラスを呼び出す・・・なんてことが できるかもしれませんが、少なくとも私の知識では そのようなことはできないと思います。 それから、Javaの処理として、GETではなくPOSTを 使用するのはURLConnectionを使用すれば、取得 できるようです。出力ストリームから読みとるよう ですよ。 ではでは☆

noname#744
質問者

補足

ご回答、ありがとうございます。 実は、Cのアプリケーションと、Javaのクラスは  同じハード上にあり、前者からのトリガによって、  後者が起動して、URLに接続する。。。というもの  なのです。 つまり、ローカルでCからJavaクラスを呼び出す方法、  という事です。 舌足らずで申し訳ありませんが、  ご存知でしたらお知恵をお借りいたしたく思います。 POSTに関しては、参考になりました。  これから実験してみます。  ありがとうございました。

関連するQ&A