OS X için bir Java SWT uygulaması yazdım, onu .jar olarak ihraç ettim ve .app. Uygulamamdaki kritik bir bölüm hariç her şey beklendiği gibi çalışır; diğer uygulamaları açmayı gerektirir.OS X Java .app paketi başka uygulamaları açamıyor mu?
Bunu yapmak için Runtime.exec();
'un yanı sıra ProcessBuilder
'u denedim, bunun için başlatmam gereken diğer uygulamalarda open
komutunu çağırıyorum. Bu Eclipse'den gayet iyi çalışıyor veya dışa aktarılmış .jar'ı Terminal üzerinden başlatıyorsam. Ancak, .app'ı çift tıklatarak başladığında işe yaramıyor.
Bunun bir hata mı yoksa Java ya da OS X tarafından bir kısıtlama mı olduğunu merak ediyorum. Çünkü Mac uygulamaları (anladığım kadarıyla) korumalı bir alan olduğundan, bir uygulamanın içinden open
telefon numarasını aramanın nedeni bu olabilir mi? hiçbir şey değil?
İhtiyacım olan uygulamayı açmak için iki yaklaşım kullandım. Bu bir Steam oyunu, ama aynı zamanda perakende olarak geliyor, bu yüzden ya uygulama aracılığıyla ya da steam://
protokolünü kullanarak başlatılabilir. Benim kodda aşağıdaki denedim:
ProcessBuilder pb = new ProcessBuilder("open", "steam://rungameid/57300//");
pb.start();
ProcessBuilder pb = new ProcessBuilder("open", appDir);
pb.start();
appDir
Ben başlamak isteyen .app demetine bir yolunu içeren bir dizedir.
Bunun bir Mac uygulama paketinden neden başarısız olduğunu, ancak Eclipse/Jar'dan düzgün çalıştığı konusunda herhangi bir fikrin var mı? Uygulamayı konsol ile çalıştırarak (paketteki bash komut dosyasıyla) herhangi bir hata döndürmüyor, bu yüzden bana Java'nın komutu düzgün olarak çalıştırdığını, ancak OS X'in bunu görmezden geldiğini düşünüyor.
Bunun için Google'da arama yapmayı da denedim, ancak belki de çok nadir görülen veya çok spesifik görünüyor ve hiçbir şey bulamadım.
Eğer Konsolu herhangi mesajımı aldın mı: Burada benim diğer soru daha derinlemesine bir cevap yazdı? – Black
, "Runtime.exec()" ifadesini, burada verilen yanıtta ayrıntılı olarak kullanmayı denediniz: http://stackoverflow.com/questions/19456454/how-do-i-launch-another-app-from-java-on-a -mac – Black
'appDir' için tam olarak ne belirtiyorsunuz? –