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
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.
Java içinde Geçerli Çalışma Dizini eld...
Java?geçerli çalışma dizini değiştirme...
Geçerli Java yığın izlemesi olsun...
Geçerli çalışma dizini değişimlere git...
Nasıl Python ile geçerli çalışma dizin...