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.