【问题标题】:Get Path of Application Launched from a Link in Linux获取从 Linux 中的链接启动的应用程序的路径
【发布时间】:2013-10-03 11:56:12
【问题描述】:

为了获取应用程序的路径,我调用了以下 Java 命令:

System.getProperty("user.dir")

如果应用程序直接启动,这会很好。在 Windows 和 OS X 上,如果应用程序分别通过快捷方式和别名启动,这也有效。

但是,当应用程序通过 Linux 链接启动时(在 Linux Mint 中,通过右键单击文件并选择“制作链接”,然后将其移动到其他位置),该命令返回快捷方式的路径,而不是应用程序本身的路径。有没有办法可以获取应用的真实路径,而不是指向应用的链接路径?

【问题讨论】:

  • 你想走哪条路? System.getProperty("user.dir") 返回您启动 JVM 的目录(请参阅this comment) - 在 Windows 上确实默认为目标文件的目录,但在 Linux 上将是符号链接的目录。 -- 要获取 jar 文件或类文件的目录,显然您还需要跳过几个环节:stackoverflow.com/a/320595/1114687
  • 我正在尝试获取目标文件的目录。换句话说,我想要通过在 OS X 和 Windows 上调用 System.getProperty("user.dir") 获得的等效字符串,即使从快捷方式启动也是如此。我不确定这是 Java for Linux 中的一个错误,还是只是不同。

标签: java linux desktop-shortcut


【解决方案1】:

System.getProperty("user.dir") 返回您启动 JVM 的目录(请参阅this comment)。当您使用快捷方式或符号链接启动程序时,默认为 Windows 上目标文件的目录1,但在 Linux 上将是符号链接的目录。

要获取 jar 或类文件的目录,您将不得不再跳几圈:https://stackoverflow.com/a/320595/1114687

1:除非你改变“工作目录”的快捷方式

【讨论】:

    猜你喜欢
    • 2012-10-23
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    相关资源
    最近更新 更多