Why System.getProperty(“home.dir”) returns null
本问题已经有最佳答案,请猛点这里访问。
我无法弄清楚为什么System.getProperty("home.dir")返回null而不是当前工作目录。
我在Ubuntu 16.04上使用Eclipse Mars2.0 IDE。 我想,这与我使用的IDE或操作系统版本无关。
1 2 3 4 5 6 7 8 9 |
我希望得到这个代码的回报,如/ home / [user] / Workspace / test
Home.dir不是这里指定的java属性:
https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
如果通过工作目录表示用户工作目录,那么user.home应该可以工作。
例:
输出:
1 | C:\Users\User |
如果你的意思是.jars工作目录,那么我不相信这样的属性存在。
而是使用:
1 | your_class.class.getProtectionDomain().getCodeSource().getLocation().getPath(); |
这将返回一个字符串,指定jar当前所在的位置。
例:
1 |
(new File()是为了得到正确的格式,它是/ C:/ ...)
输出:
1 2 | C:\Users\User\Documents\Java etbeans\Engine\build\test\classes |
(这是运行jar的路径)
如果home.dir是系统环境变量,那么你将使用System.getenv()