Töltse le a Java jelenlegi munkakönyvtárát
1. Áttekintés
Könnyű feladat beszerezni a Java jelenlegi munkakönyvtárát, de sajnos a JDK-ban nincs elérhető közvetlen API ehhez.
Ebben az oktatóanyagban megtudhatjuk, hogyan lehet a Java munkakönyvtárát letölteni java.lang.Rendszer, java.io.File, java.nio.file.FileSystems, és java.nio.file.Paths.
2. Rendszer
Kezdjük a standard megoldás használatával System # getProperty, feltételezve, hogy a jelenlegi munkakönyvtárunk neve Baeldung a kódban:
statikus végső karakterlánc CURRENT_DIR = "Baeldung"; @Test void whenUsingSystemProperties_thenReturnCurrentDirectory () {String userDirectory = System.getProperty ("user.dir"); assertTrue (userDirectory.endsWith (CURRENT_DIR)); }
Java beépített tulajdonságkulcsot használtunk user.dir lekérni az aktuális munkakönyvtárat a RendszerIngatlan-térképe. Ez a megoldás az összes JDK verzióban működik.
3. File
Nézzünk meg egy másik megoldást java.io.Fájl:
@Test void whenUsingJavaIoFile_thenReturnCurrentDirectory () {String userDirectory = új fájl (""). GetAbsolutePath (); assertTrue (userDirectory.endsWith (CURRENT_DIR)); }
Itt a Fájl # getAbsolutePath belsőleg használja System # getProperty hogy megkapjuk a könyvtár nevét, hasonlóan az első megoldáshoz. Nem szabványos megoldás az aktuális munkakönyvtár megszerzésére, és az összes JDK verzióban működik.
4. FileSystems
Egy másik érvényes alternatíva az új használata lenne java.nio.file.FileSystems API:
@Test void whenUsingJavaNioFileSystems_thenReturnCurrentDirectory () {String userDirectory = FileSystems.getDefault () .getPath ("") .toAbsolutePath () .toString (); assertTrue (userDirectory.endsWith (CURRENT_DIR)); }
Ez a megoldás az új Java NIO API-t használja, és csak azokkal működik JDK 7 vagy magasabb.
5. Útvonalak
És végül lássunk egy egyszerűbb megoldást az aktuális könyvtár használatára java.nio.file.Paths API:
@Test void whenUsingJavaNioPaths_thenReturnCurrentDirectory () {String userDirectory = Paths.get ("") .toAbsolutePath () .toString (); assertTrue (userDirectory.endsWith (CURRENT_DIR)); }
Itt, Útvonalak # get belsőleg használja FileSystem # getPath hogy lehozza az utat. Az új Java NIO API-t használja, ezért ez a megoldás csak azokkal működik JDK 7 vagy magasabb.
6. Következtetés
Ebben az oktatóanyagban négy különböző módszert tártunk fel, amellyel megszerezhetjük a Java jelenlegi munkakönyvtárát. Az első két megoldás a JDK összes verziójában működik, míg az utóbbi kettő csak a JDK-val működik 7 vagy magasabb.
Javasoljuk a Rendszer megoldás, mivel hatékony és egyértelmű, egyszerűsíthetjük, ha ezt az API hívást statikus segédprogramba csomagoljuk, és közvetlenül hozzáférünk hozzá.
Ennek az oktatóanyagnak a forráskódja elérhető a GitHubon - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.