アプリ版:「スタンプのみでお礼する」機能のリリースについて

Windows上でJavaとFortranを使用し、プロセス間通信を行いと考えています。単純に思いついたのが名前付きパイプなのですが、Javaで名前付きパイプを生成する方法が解りません。
どなたかご存じないでしょうか?
ちなみに、
try {
// ファイルオブジェクトを生成する
file.createNewFile();
FileOutputStream fileOutputStream =
new FileOutputStream("\\\\.\\PIPE\\mypipe");<<ここでエラーになる。
OutputStreamWriter outputStreamWriter =
new OutputStreamWriter(fileOutputStream);
BufferedWriter bufferedWriter =
new BufferedWriter(outputStreamWriter);
// ファイルに書き込む内容をセットする
String outputdata = "TESTDATA";
  <<< 以下省略 >>>>
こんな感じで、試してみたのですが、ファイルの生成ができませんでした。
色々と調べてはいるのですが、どなたか成功した方いらっしゃいませんか?最悪はJNIを利用するしかないのかなぁ?

A 回答 (1件)

もちろんJNIを使うしかないが、しかし、それほどのリアルタイム性が必要ないなら、ふつうのファイルでやれば?

この回答への補足

結果です。
Java:名前付きパイプを生成することができません。
   名前付きパイプはCreateNamedPipe()APIを使用することから、C/C++などを利用する必要があります。
 ただし、JNIを利用してC/C++のAPIを引用するなどの手法はあるでしょう。
 ただ、JNIを使うということで、Javaで使えるというには語弊があるかもしれませんね。
 Javaから名前付きパイプの生成はできませんが、生成された名前付きパイプにアクセスする方法は通常のファイルにアクセスする場合と何ら変わりはありません。

以上

補足日時:2008/10/30 11:45
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはりJNIでしたか・・・
ネイティブなjavaだけで実現したかったのですが、無理そうですね。
名前付きパイプのメリットとして、
 ・同期が取れる。
 ・速度が速い。HDDへのアクセスが無い。
 ・古い言語でもファイルIOで実現できる。相手がFortranなので・・・
というところが重要でして、敢えて事例が少ないながらも名前付きパイプに拘りました。

お礼日時:2008/10/16 09:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!