2016-05-15 14 views
-1

私は時々、プログラムのフロントエンドが言語Aで書かれ、バックエンドが言語Bで書かれていることを聞いたことがあります。 JavaのグラフィックスやCやC++のバックエンドも同様です。どうすればいいのですか?1つのプログラムを作成するために2つの異なる言語を使用するにはどうすればよいですか?

PS。申し訳ありませんが、私は1つであるので、初心者の質問です。

編集1 私の質問は広すぎると言われていますので、ここに私が欲しいものがあります。 javaのmtアクションリスナとCプログラムをリンクするにはどうすればよいですか?例えば、ボタンが「次の100個の素数」であれば、ボタンをJavaで作成し、Cを使って計算した素数を欲しい。

+0

あなたが本当に求めているのは、2つの異なるプロセスがどのように通信できるかです。それを調べ始めると、必然的にあなたの答えが見つかるはずです。 – Kon

+1

@Kon:この質問では、明確に異なるプロセスを求めているわけではありません。これは、単一のプロセス(JREをホストすること、および/またはJNIを使​​用してネイティブコードを呼び出すことによって)で非常にうまく実装できます。 – IInspectable

+0

私はC++プロセスソリューションのバリエーションでホストされているJREが好きです@ @nspectable! –

答えて

1

これは、たとえばJNIという1つのJavaプロセスで行うことができます。 Javaは実質的にC++をライブラリとして呼び出します。

これは、JavaプロセスでC++プロセスを作成し、その出力をC++プロセス終了コード、標準出力、または作成済みファイルとして取り込むことによって複数のプロセスで行うこともできます。

これを実行する第3の方法は、長時間実行しているC++プロセスをTCPソケットでリッスンしてから、Javaプログラムが同じマシン上またはイントラネット上でネットワーク経由でC++バックエンドと通信するようにすることです。

その他の方法も必ず存在します。これらは私の頭の上から知っているだけの少数です。 :)

+0

はい。また、アセンブラコードをC言語にバインドすることは、初期の段階で多く行われました。また、Javaを使用すると、キャプチャ/開始されたアプリケーションとの間で、標準の入出力ストリームを使用してデータを制御できます。それに対して、なぜあなたはそれをやりたいのですか?それを簡単に保つのはいかがですか? – JayC667

+0

@ JayC667、コンソールアプリケーション上のGUIは、コンソールインターフェイスを持つ、またはコンソールインターフェイスが必要なアプリケーションにGUIを追加するための格安方法です。例えば ​​'git gui 'のチャンスは、Gitコンソールアプリケーションの上にあるTkインタフェースであるか、それともTkインタフェースであったかなどです。以前のバック[XBoard]には、標準の通信プロトコルアーキテクチャを備えたコンソールアプリの上に同様のGUIがあります。 –

関連する問題