【发布时间】:2012-01-19 01:04:36
【问题描述】:
我有一个 jar 文件,其中有检测其绝对路径(启动此文件的当前目录)的函数。它工作正常。
但是现在,为了获得管理员权限,我从另一个 jar 文件启动这个文件,同时使用 elevation binary executable 类似:
Elevate.exe javaw.exe -jar path-to-my-jar-file
在这里,请注意Elevate.exe 和 jar 文件在同一个目录中,但是我尝试只提供 jar 文件名和绝对路径,但在这两种方式中,文件启动时,它具有管理员权限和一切正常,除了现在相同的方法给出了错误的当前目录路径。
这次我得到:C:\Windows\System32 我已经尝试了很多东西,但是每次当我使用上述方法从另一个使用Runtime.getRuntime().exec("cmd \\c "); 的 jar 文件启动这个 jar 时,当前目录路径都没有被正确检测到。为什么会这样,在这种情况下我怎样才能找到正确的路径?
编辑: 我尝试使用以下方法获取正确的目录名称:
String dir = System.getProperty("user.dir") &&
String dir = new File (".").getAbsolutePath().toString();
当文件独立启动时,两者都返回相同的正确路径,从外部进程启动时返回C:\Windows\System32。请建议我应该怎么做才能解决这个问题。
【问题讨论】:
标签: java jar filepath executable-jar