我有一个jar文件,其中有检测其绝对路径(启动此文件的位置的当前目录)的函数。它工作正常。从命令行运行jar文件时设置目录路径
但现在,为了获得管理权限,我启动从另一个jar文件这个文件,而使用elevation binary executable类似:
Elevate.exe javaw.exe -jar path-to-my-jar-file
在这里,请注意,Elevate.exe
和JAR文件在同一目录,但我试着给出只是jar文件名以及绝对路径,但在两种方式中,文件启动,它具有管理权限,一切正常,除了现在相同的方法给出错误的当前目录路径的事实。
这次我得到:C:\Windows\System32
我试过很多东西,但是每当我用另一个jar文件使用上述方法从Runtime.getRuntime().exec("cmd \\c ");
启动这个jar时,当前目录路径检测不到。为何如此,在这种情况下如何找出正确的路径?
编辑: 我试图让使用正确的目录名称:
String dir = System.getProperty("user.dir") &&
String dir = new File (".").getAbsolutePath().toString();
两个返回时,从外部进程启动时的文件是独立启动,C:\Windows\System32
相同的正确路径。请建议我该如何解决这个问题。
非常感谢这样宝贵的答案。其实Elevate.exe和jar文件驻留在同一个目录中。在运行Elevate.exe之前,我传递命令“cd dir”,以便dos提示符更改为特定的目录。奇怪的是,在我的桌面上,它在笔记本电脑上工作,但它并不在win7上。我会在前夕测试你的解决方案,因为我没有其他机器在这里,但我确定它会工作,谢谢。 – Johnydep