java - 如何找到创建我的 JVM 的特定 java.exe 的位置?

标签 java windows

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

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

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

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

最佳答案

如果您使用的是 Windows,请查看此帖子的最后一个答案:[ Find absolute java.exe path programatically from java code

这是代码

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);
    }
}

关于java - 如何找到创建我的 JVM 的特定 java.exe 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36899278/

相关文章:

java - 如何启动immediate = false组件?

ARMv7 上的 Java (JVM)(更具体地说是 Cubox 或 BeagleBoard)?

windows - 脱机时 DNS 查找不起作用

Windows 8 Metro 风格桌面应用程序?

windows - 缓慢的 WUA(Windows 更新 API)

java - 我如何删除字符点字符,特别是在java中

java - 在指定日期执行 Java Swing 操作

java - 在 GWT 中支持国际化

c++ - 更改控制台颜色并保留 C++ 中的输出

.net - 如何使用 C# 在 Windows 窗体中创建 F1 帮助