File'ın getAbsolutePath yönteminde geçerli çalışma dizini üzerinde karışıklık

Aug 16 2020

Dosyanın getAbsolutePath'i, dosya yapıcısında göreceli bir yol veya sadece dosya adı sağlanırsa, mevcut çalışma dizininin önüne ekleyerek mutlak yolu çözme eğilimindedir.

Mevcut çalışma dizininin tanımı, Java Programımızı çalıştırdığımız dizindir. Örneğimde, java programım içerideD:\my-app\src\App.java

Yaptığım zaman System.out.println(System.getProperty("user.dir"));

O zaman ideal olarak yazdırmalı D:\my-app\src

Ama aslında yazdırıyor D:\my-app

Neden böyle?

Yanıtlar

1 Joni Aug 16 2020 at 15:33

IntelliJ'den bir uygulama başlattığınızda, çalışma dizini "Çalıştır / Hata Ayıklama Yapılandırmaları" iletişim kutusundaki "Çalışma dizini" içinde ayarlananlara göre ayarlanır .

There, you can set the working directory to a fixed value such as D:\my-app\src. Another option is to use a path variable. The list of variables that are available apparently can depend on many things - open the dialog and see what's available. One option that I see is $FileDir$ which I imagine would be the directory of the source code file.

Sandy Aug 16 2020 at 15:29

I think I found the solution. Intellij was actually causing the issue by implicitly setting the src folder as the source folder. I found it by going to the module setting within Intellij. When I ran the same from a command prompt, the correct working directory i.e. D:\my-app\src\ is selected.