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. java
gerç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 Test
ise çı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.dir
hiçbir şey aktarılmazsa geri dönebilir .