SORU
30 HAZİRAN 2010, ÇARŞAMBA


Geçerli çalışma dizini olsun Java

Hadi C:\Users\Justian\Documents ana Dersim var diyelim.

Nasıl C:\Users\Justian\Documents içinde olduğunu göstermek için bir program alabilir miyim.

Sabit Kodlama eğer başka bir yere taşınmış ise adapte olmak için gereken seçenek değildir.

Bir klasörde CSV dosyaları bir demet dökümü, program tüm dosyaları tanır, sonra verileri yüklemek ve onları işlemek istiyorum. Ben gerçekten sadece o klasöre gitmek için nasıl bilmek istiyorum.

Çok teşekkürler

Justian

Bir klasörde CSV dosyaları bir demet dökümü, program tüm dosyaları tanır, sonra verileri yüklemek ve onları işlemek istiyorum. Ben gerçekten sadece o klasöre gitmek için nasıl bilmek istiyorum.

@BalusC

Neden:

public static String getCleanPath() {
    ClassLoader classLoader = ExcelFile.class.getClassLoader();
    File classpathRoot = new File(classLoader.getResource("").getPath());

    return classpathRoot.getPath();
}

Daha iyi:

public static String getCleanPath() {
    URL location = ExcelFile.class.getProtectionDomain().getCodeSource()
            .getLocation();
    String path = location.getFile();

    return new File(path).getParent();
}

CEVAP
30 HAZİRAN 2010, ÇARŞAMBA


Bir şekilde bu sana verecektirsystem property System.getProperty("user.dir"); kullanmak olacaktır "özelliklerini başlatılmış zaman geçerli çalışma dizini". İstediğin bu herhalde. java komutu verildiği, bu dosyalar ile dizinde sizin durumunuzda işlemek için öğrenmek için, gerçek olsa bile .jar dosyası başka bir yerde makine üzerinde bulunan olabilir. Gerçek dizini geçiriyor .jar dosyası çoğu durumda faydalı değil.

Aşağıdaki çık komutu nerede olursa olsun başlatıldığı yerde geçerli dizin olarak yazdırılır .sınıf ya .jar dosyası .sınıf dosyasında.

public class Test
{
    public static void main(final String[] args)
    {
        final String dir = System.getProperty("user.dir");
        System.out.println("current dir = "   dir);
    }
}  

/User/me/ ve eğer siz iseniz .jar dosyası yukarıdaki kodu içeren /opt/some/nested/dir/. java -jar /opt/some/nested/dir/test.jar Test komut çıkış current dir = /User/me.

Ayrıca bonus olarak iyi nesne yönelimli komut satırı argüman ayrıştırıcı kullanarak bakmak gerekir. Ben çok JSAP Java Basit Argüman Ayrıştırıcı tavsiye ederim. Bu System.getProperty("user.dir") kullanalım ve alternatif bir over-ride başka bir şey davranışı geçerdi. Çok daha sürdürülebilir bir çözüm. Bu eğer bir şey geçti ise işlem için dizin pas yapmak çok kolay ve user.dir geri düşmek mümkün olacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • graham025

    graham025

    25 NİSAN 2006
  • newreleaseblitz

    newreleasebl

    13 Ocak 2010
  • RealPapaPit

    RealPapaPit

    16 Mart 2009