2011-06-20 5 views
5

kabuk komut dosyası (linux tabanlı bir uygulamadan çağrılıyor) bilgisinden java uygulamasına geçmem gerekiyor.Java, System V linux mesaj kuyrukları ile etkileşime girebilir mi?

Adlandırılmış borular, no'lu bir ağrılardır, çünkü boruların okuma/yazma uçlarına karmaşık yansımaları dikkate almadan hizmete başlayamıyorum/durduramıyorum.

Yuva zor çünkü dinleme süreci hiçbir kuyruk mekanizması var yeniden ve basit uygulamalar yeni yuva sürekli başka kabuk komut kontrol-ve yeniden başlatma-soket ile çok karmaşık alacak (oluşturulur ve kuyruk olmak gerektiren eğer kodu).

Son zamanlarda bu System V/POSIX linux ileti kuyrukları hakkında okunuyordum. Fedora 12'yi çalıştırıyorum ve bu ileti sıralarını yapılandırmak için iyi bir yol olup olmadığını ve Java ile etkileşimde bulunup bulunmadığını merak ediyorum.

+1

olası kopyası [Java Posix IPC API var mı?] (Http://stackoverflow.com/questions/2278208/java-posix-ipc-is-there-an-api) – bdonlan

+0

Nasıl etkileşim kurmayı düşünüyorsunuz? Bir kabuk betiğinden mi? – Gabe

+1

Bir kabuk komut dosyasını JNI ... – bdonlan

cevap

1

Onları doğrudan kullanamazsınız, bunları bir araya getirmek için bazı JNI sihirbazlıklarını yapmanız gerekir.

Borularda ne gibi sorunlar yaşıyorsunuz? Java, bunları sadece genel dosyalar olarak görür. Bunları kapsamlı bir şekilde kullanmamıştım, ama Borularla gerçek bir problemim yoktu. Üreticilerin ayak uyduramadığı durumlarda boru okuyucusunun sürekli olarak boruyu yeniden açması gerektiği tek detay.

Ancak iki taraf da başarısız olursa, diğer taraf sadece diğerinin kurtarılmasını bekler.

Sadece borudan tampon okumaları konusunda dikkatli olmalısınız. Boruyu bir arabelleğe okursanız ve sonra başarısız olursa, bu veriler kaybolur.

+0

İsimlendirilmiş borularla savaşmayı bitirdim, tüm giriş/çıkış akışı sınıfının, borunun diğer ucu açılıncaya kadar yapıcı üzerinde engelleyeceği için biraz garip davrandılar, bu yüzden bu konuda çalışmak zorundasınız. Bahsettiniz, EOF için dikkatlice izleyin ve tekrar açın. Doğru olması için gereken 3 veya 4 tuhaflığı anlamak için etrafta biraz maymun sürüyordu, ama sanırım onları şimdi aldım, zarif görünmüyordu ve işler biraz sezgisel idi. Komut dosyasını düzeltmeye çalışmak başka bir önemli konu, kedi, tişört ve diğer ortak araçların diğer uçları açıp kapandığında çok garip davranmasıydı. –