gpt4 book ai didi

language-agnostic - 获取应用程序的路径

转载 作者:行者123 更新时间:2023-12-03 05:14:20 26 4
gpt4 key购买 nike

我最近搜索了如何在 Java 中获取应用程序的目录。我终于找到了答案,但我需要的时间出奇地长,因为搜索这样一个通用术语并不容易。我认为编制一份如何用多种语言实现这一目标的列表是个好主意。

如果您(不)喜欢这个想法,请随意投赞成票/反对票;如果您喜欢它,请贡献

澄清:

包含可执行文件的目录当前工作目录(在Unix下由pwd给出)之间有一个很好的区别。我最初对前者感兴趣,但也请随意发布确定后者的方法(澄清您的意思)。

最佳答案

Java中调用

System.getProperty("user.dir")

new java.io.File(".").getAbsolutePath();

返回当前工作目录。

调用

getClass().getProtectionDomain().getCodeSource().getLocation().getPath();

返回包含当前类的 JAR 文件的路径,或者如果直接从文件系统运行,则返回生成当前类的 CLASSPATH 元素(路径)。

示例:

  1. 您的应用程序位于

     C:\MyJar.jar
  2. 打开 shell (cmd.exe) 并 cd 到 C:\test\subdirectory。

  3. 使用命令 java -jar C:\MyJar.jar 启动应用程序。

  4. 前两个调用返回“C:\test\subdirectory”;第三次调用返回“C:\MyJar.jar”。

例如,当从文件系统而不是 JAR 文件运行时,结果将是生成的类文件的根路径

c:\eclipse\workspaces\YourProject\bin\

该路径不包括生成的类文件的包目录。

获取不带 .jar 文件名的应用程序目录的完整示例,或者如果直接从文件系统运行(例如调试时),则获取类文件的相应路径:

String applicationDir = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); 

if (applicationDir.endsWith(".jar"))
{
applicationDir = new File(applicationDir).getParent();
}
// else we already have the correct answer

关于language-agnostic - 获取应用程序的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/218061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com