Bunun bir yolu, sistem özelliğini kullanmaktır, System.getProperty("user.dir");bu size "Özellikler başlatıldığında geçerli çalışma dizini" ni verir. Muhtemelen istediğin bu. javagerçek .jar dosyası makinede başka bir yerde bulunsa bile, sizin durumunuzda işlenecek dosyaların bulunduğu dizinde komutun nerede verildiğini bulmak için. Gerçek .jar dosyasının dizinine sahip olmak çoğu durumda o kadar kullanışlı değildir.
Aşağıdaki komut, .class veya .jar dosyasının .class dosyasının nerede olduğuna bakılmaksızın, komutun çağrıldığı geçerli dizini yazdıracaktır.
public class Test
{
public static void main(final String[] args)
{
final String dir = System.getProperty("user.dir");
System.out.println("current dir = " + dir);
}
}
Eğer içerisindeyseniz /User/me/ve yukarıdaki kodu içeren .jar dosyanız /opt/some/nested/dir/
komutta java -jar /opt/some/nested/dir/test.jar Testise çıktı alacaktır current dir = /User/me.
İyi bir nesne yönelimli komut satırı argüman ayrıştırıcısı kullanmaya da bonus olarak bakmalısınız. Java Simple Argument Parser JSAP'ı şiddetle tavsiye ederim . Bu System.getProperty("user.dir"), davranışı aşmak için kullanmanıza ve alternatif olarak başka bir şey yapmanıza izin verir . Çok daha sürdürülebilir bir çözüm. Bu, dizinde geçişi çok kolay hale getirir ve içeri user.dirhiçbir şey aktarılmazsa geri dönebilir .