如何找到创建 JVM 的特定 java 的位置.exe 由该 Java 创建



我不想找到系统的JAVA_HOME。 我不想查找系统变量。

我需要确切地知道独立(捆绑的 JRE)在它启动的.jar中的位置。

示例:用户安装捆绑的 .jre 应用程序,然后启动它。 该程序不仅需要确定当前正在运行的目录,还需要确定与其捆绑在一起的 java.exe 的位置。 我可以根据当前运行目录的相对路径做出假设,但我更喜欢一种绝对确定当前正在运行的 java.exe 的完整路径的方法。 我不认为这是一个重复的问题,因为我已经能够找到它的任何实例(或答案)没有通过参考系统或用户配置文件java_home来回答。

我认为这将是一项简单的任务,但到目前为止还没有找到答案。

如果你在Windows上,看看这篇文章的最后一个答案:[从java代码中以编程方式查找绝对java.exe路径

这是代码

class WhichJava {
    public static void main(String args[]){
        String libPath = System.getProperty("java.library.path");
        String exePath = libPath.substring(0, libPath.indexOf(';')) + 
                                             ((System.console() == null)? “\javaw.exe" :”\java.exe");
        System.out.println(exePath);
    }
}

我没有尝试过这个。只是一个想法:

  1. 获取当前进程 ID

Java 程序如何获得自己的进程 ID?

  1. 获取PID的特定Windows信息(从Java执行和处理命令)。

https://superuser.com/questions/768984/show-exe-file-path-of-running-processes-on-the-command-line-in-windows

最新更新