SORU
7 EKİM 2008, Salı


Nasıl tek örnek bir Java uygulaması uygulamak için?

Bir ara tek örnek uygulamaları olan msn, windows media player vb kullanıcı uygulama çalışırken yeni bir uygulama örneği ortaya çıkacak değil yürütür () gibi pek çok uygulama gördüm.

C#, bunun için Mutex sınıf kullanın ama Java ile bunu yapmak için nasıl bilmiyorum.

CEVAP
7 EKİM 2008, Salı


Eğer bu article tarafından: inanıyorum

ilk örneği olması localhost arabirim üzerinde dinleme soketi açmaya. Eğer mümkün soket açmak için ise, bu uygulamanın ilk örneği piyasaya olduğu varsayılmıştır. Bu uygulamanın bir örneği zaten çalışıyor o değilse, bu varsayım. Yeni bir örneğini başlatmak denendi varolan örneği haber, çıkın. Varolan örnek bildirim aldıktan sonra devraldı ve eylemi işleyen dinleyiciye bir olayı tetikler.

Not: Ahe InetAddress.getLocalHost() kullanarak zor olabilir yorum bahseder:

  • iade adresi bilgisayarın ağ erişimi olup olmadığını bağlıdır, çünkü DHCP ortamında beklendiği gibi çalışmıyor.
    Çözüm ile bağlantı kurmak vardıInetAddress.getByAddress(new byte[] {127, 0, 0, 1});
    Muhtemelen bug 4435662 ile ilgili.
  • Ben de getLocalHost Beklenen sonuçları daha raporlar bug 4665037 bulundu: makine dönüş IP adresi, vs. Gerçek sonuçlar : dönüş 127.0.0.1.

şaşırtıcı getLocalHost ama windows üzerinde Linux 127.0.0.1 dönüş var.


Ya da ManagementFactory nesne kullanabilirsiniz. here açıkladı:

getMonitoredVMs(int processPid) yöntem alır gibi parametre geçerli uygulama PID ve yakalamak uygulamanın adı " adlı komut satırı, örneğin, uygulama başladı c:\java\app\test.jar yol değeri değişkendir "c:\\java\\app\\test.jar". Bu şekilde, satır kod 17 sadece uygulama adı altında yakalayacağız.
Bundan sonra, biz JVM aynı ada sahip başka bir işlem için arama ve uygulama PID farklı olduğunu bulursak, ikinci uygulama örneği olduğu anlamına gelir.

JNLP fazla da bir SingleInstanceListener

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • AyfionGaming

    AyfionGaming

    20 ŞUBAT 2013
  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010