2012-10-26 18 views
8

JVM'de, uygulama ayarlarını ve önbellek verilerini depolamak için uygun dizinleri bulmak için basit, platformlar arası bir yol arıyorum. Ör Linux üzerinde XDG gözlük altında:Java'da iyi bilinen masaüstü yollarını bulmak için basit, çapraz platform?

  • yapılandırma
  • önbellek ~/.cache/appname

, Windows şeyler C\Users\user\Application Data gider ya da bazı tür (Win 7) 'de ~/.config/appname yılında; Ben Mac'in ~/Library/Application Settings'un altına bir şeyler koyarım.

Bu yol konumlarını almak için çapraz platform araması var mı? Bunu bulamayan birkaç soru bulsam da bir tane bulamadım. En yaygın masaüstü platformları için doğru mantığı uygulayan bir kütüphane var mı?

En kötü durum, user.home'u arayabilir ve her şeyin XDG tabanlı bir Linux ortamı olduğunu iddia edebilirim. Ancak, kullanıcının işletim sistemi için doğru dizinleri almak kolaysa, bunu yapmak isterim.

cevap

2

FileSystemView sınıfı, bu gibi bazı genel dizinlere erişim içerdiğini bildiğim tek platformdur ve çapraz platformdur. Bu sınıf, getHomeDirectory() ve getDefaultDirectory() gibi yardımcı olabilecek bazı yöntemler içerir. Bu sınıf, Swing arabirimleri için JFileChooser tarafından kullanılır. Doğrudan yapılandırma ve önbellek dizinlerine işaret etmediğini biliyorum, ancak sizin için doğru yönde bir adım olabilir.

Kendi uygulamalarım için, uygulamanın içinde yer alan tüm yapılandırma ve ayarları yapmaya çalışarak bir sonraki en iyi yaklaşımı alıyorum. Uygulamanın yüklü olduğu dizinin altında bir "config" dizini oluşturun. Tüm işletim sistemi için yapılandırma için merkezi bir konum olmasa da, en azından java uygulama bağlamında tutar.

2

Temel olarak, çoğunlukla user.home ve os.name sistem özelliğine dayalı olarak bu bilgileri sağlayan bir yardımcı program sınıfı kurarız.

Biz bize yol konumunu kurmak için izin yöntemleri gibi bir şey bir dizi var ...

SystemUtilities.getApplicationSettingsPath("Name of my awesome app"); 
İlgili konular