سؤال

على نظام لينكس نستخدم أنابيب الاتصال المسماة interprocess (المنتج والمستهلك).

من أجل اختبار المستهلك (جافا) رمز ، أود أن تنفيذ (Java) دمية المنتج الذي يكتب اسمه الأنابيب التي يتم توصيلها إلى المستهلك.

الآن اختبار أيضا العمل في نوافذ بيئة التطوير.وبالتالي أود أن أعرف كيفية إنشاء المسمى في ويندوز من جافا.في لينكس يمكنني استخدام mkfifo (تسمى باستخدام Runtime.exec() ) ، ولكن كيف ينبغي أن أفعل هذا على ويندوز ؟

هل كانت مفيدة؟

المحلول

استخدام أنابيب إلى التواصل بين الاسم جافا وصافي العمليات

والجزء ذو الصلة في الارتباط

try {
  // Connect to the pipe
  RandomAccessFile pipe = new RandomAccessFile("\\\\.\\pipe\\testpipe", "rw");
  String echoText = "Hello word\n";
  // write to pipe
  pipe.write ( echoText.getBytes() );
  // read response
  String echoResponse = pipe.readLine();
  System.out.println("Response: " + echoResponse );
  pipe.close();
} catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}

نصائح أخرى

في النوافذ، اسمه أنابيب موجودة لكن هم لا يمكن إنشاء كملفات في نظام الملفات للكتابة وليس هناك أداة سطر الأوامر. إنهم يعيشون في ملفات خاصة ويمكن أن تنشأ فقط باستخدام API Win32 و.

ويبدو أنك سوف تضطر إلى اللجوء إلى التعليمات البرمجية الأصلية، أو التحول من الأنابيب لفتحات للIPC - ربما أفضل حل على المدى البعيد، لأنه أكثر من ذلك بكثير المحمولة

ويمكنك إنشاء إخراج مسمى باستخدام JNA مكتبة https://github.com/java-native -access / الجيش الشعبي اليوغوسلافي

ويظهر بشكل واضح في الاختبار التالي: <لأ href = "https://github.com/java-native-access/jna/blob/master/contrib/platform/test/com/sun/jna/platform /win32/Kernel32NamedPipeTest.java "يختلط =" نوفولو noreferrer "> https://github.com/java-native-access/jna/blob/master/contrib/platform/test/com/sun/jna/platform/win32/ Kernel32NamedPipeTest.java

وAPI من JNA المجمع هو نفس Win32 وبالتالي سوف تكون قادرة على استخدام كافة ميزات وقوة من الأنابيب اسمه على ويندوز.

فمن الممكن جدا كثيرا القراءة والكتابة إلى القائمة المسمى في جافا.لا يمكنك ، على حد علمي ، إنشاء المسمى في بيئة ويندوز.لينكس هو قصة مختلفة كما يدعى الأنابيب يمكن إنشاء المستهلكة مثل ملفات.

الروابط ذات الصلة على التفاعل مع القائمة الأنابيب: http://v01ver-howto.blogspot.com/2010/04/howto-use-named-pipes-to-communicate.html

وربما يمكن استخدام أنابيب اسمه سيغوين - إذا كانت كل العمليات الخاصة بك وسيغوين

.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top