Java程序获取执行自己的java.exe路径

首先通过:java.lang.management包提供的接口获取当前进程ID;接下来利用wmic命令根据进程ID获取进程exe的目录。代码如下:

    /**
     * Windows下获取运行当前程序的java.exe完整路径
     * 返回示例:C:\Program Files\Java\jdk1.8.0_191\bin\java.exe
     *
     * @return
     */
    public static String getCurrentJavaHome() {
        try {
            //获取程序自己的pid
            String pid = ManagementFactory.getRuntimeMXBean().getName().split("@")[0];
            //执行wmic命令获取自己被那个java.exe执行
            String command = String.format("wmic process %s GET ExecutablePath", pid);
            Process process = Runtime.getRuntime().exec(command);
            List<String> lines = IOUtils.readLines(process.getInputStream(), "UTF-8");
            //等待执行完毕
            process.waitFor();
            for (String line : lines) {
                if (line.contains("\\")) return line.trim();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

未经允许不得转载:鹞之神乐 » Java程序获取执行自己的java.exe路径

赞 (0) 打赏

评论

2+7=

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏