windows找到了绝对的java。通过编程从java代码获取exe路径
如果我有一个用户启动的java jar或类文件(假设java路径是在环境变量中设置的),那么我如何从代码中找出java的绝对路径呢。exe/javaw。从中启动此文件的exe
就像在ubuntu上一样,我们可以运行:% which java
并显示路径
然而,在windows上,如果我选中System.getenv()
,可能会发现多个路径,例如旧版本或新版本。如果通过cmd行,我运行java -version
它不会显示路径
你能通过纯java或windows上的命令行告诉我如何找到javaw的位置吗。exe
# 1 楼答案
在Windows上,java。图书馆path System属性以包含java的bin目录的路径开始。exe用于运行jar文件
这是有道理的,因为在Windows上,任何可执行文件查找DLL文件的第一个位置是包含可执行文件本身的目录。因此,当JVM运行时,它首先查找DLL的地方是包含java的目录。exe
你可以获得通往java的路径。exe如下:
这段代码是Windows特有的——我硬编码了路径分隔符(;)以及文件分隔符()。我还加入了一个只使用“java”的后备策略,以防库路径技巧不知何故不起作用
我已经在Windows7上用Java6和Java7进行了测试。我尝试了32位和64位版本的Java