Java获取项目路径的方式有很多,这里我们将介绍几种常用的方法,在Java中,我们可以通过以下几种方式获取项目的路径:
1、使用System.getProperty()方法
public class GetProjectPath { public static void main(String[] args) { String projectPath = System.getProperty("user.dir"); System.out.println("项目路径:" + projectPath); } }
上述代码中,我们使用了System.getProperty()
方法,传入参数"user.dir"
,这个参数表示用户当前工作目录,通过这种方式,我们可以获取到项目的根目录。
2、使用ClassLoader.getResource()方法
import java.net.URL; public class GetProjectPath { public static void main(String[] args) { URL resource = GetProjectPath.class.getClassLoader().getResource(""); String projectPath = resource.getPath(); System.out.println("项目路径:" + projectPath); } }
在这个例子中,我们使用了ClassLoader
的getResource()
方法,传入参数""
,表示获取项目的根目录,通过这种方式,我们也可以获取到项目的根目录。
3、使用Class对象的getProtectionDomain()和getCodeSource()方法
import java.io.File; import java.net.URL; import java.security.CodeSource; import java.security.ProtectionDomain; public class GetProjectPath { public static void main(String[] args) { Class<?> clazz = GetProjectPath.class; ProtectionDomain protectionDomain = clazz.getProtectionDomain(); CodeSource codeSource = protectionDomain.getCodeSource(); URL location = codeSource.getLocation(); File projectDir = new File(location.getFile()); String projectPath = projectDir.getAbsolutePath(); System.out.println("项目路径:" + projectPath); } }
在这个例子中,我们使用了Class
对象的getProtectionDomain()
方法获取到类的保护域,然后通过保护域的getCodeSource()
方法获取到代码源的位置,我们将位置的文件转换为File
对象,并调用其getAbsolutePath()
方法获取项目的绝对路径,这种方式也可以获取到项目的根目录。
4、使用File对象的getCanonicalPath()和getAbsolutePath()方法
import java.io.File; import java.net.URISyntaxException; public class GetProjectPath { public static void main(String[] args) { File file = new File(""); try { String canonicalPath = file.getCanonicalPath(); System.out.println("项目路径:" + canonicalPath); } catch (IOException | URISyntaxException e) { e.printStackTrace(); } finally { System.out.println("绝对路径:" + file.getAbsolutePath()); } } }
在这个例子中,我们创建了一个空的File
对象,然后分别调用了getCanonicalPath()
和getAbsolutePath()
方法来获取项目的路径,需要注意的是,由于这两个方法可能会抛出异常,所以我们需要使用try-catch语句进行处理,我们还需要输出绝对路径,这种方式也可以获取到项目的根目录。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/222042.html