我不想find系统的JAVA_HOME。 我不想查找系统variables。
我需要从它启动的.jar中确切知道独立(捆绑的JRE)所在的位置。
示例:用户使用捆绑的.jre安装应用程序,并启动它。 程序不仅需要确定当前的运行目录,还需要确定与之捆绑在一起的java.exe的位置。 我可以根据当前运行目录的相对path进行假设,但我更喜欢一种绝对确定当前正在运行的java.exe的完整path的方法。 我不相信这是一个重复的问题,因为我已经找不到它的实例(或答案),通过返回到系统或用户configuration文件java_home来回答。
我认为这将是一个简单的任务,但迄今没有find答案。
如果你在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); } }
我没有试过这个。 只是一个想法:
Java程序如何获得自己的进程ID?