windows 7如何在Java中获得双击或执行的正确路径?
我的java jar安装在c:\program files<i do not know>\i do not know\here.jar
中。当用户执行我的应用程序时
我总是在这里得到c:\uesrs\\。jar及其失败
String Windows7HomeEditionProgramFileDirectroyStruct = System.getProperty("user.dir");
如何获得双击或执行的正确路径
详细信息(测试了两个答案,但都没有说明罐子的位置):
试试看(1)
new File(".").getAbsolutePath();
or
new File(".").getCanonicalPath();
C:\Users\sun>java -jar "C:\Users\sun\Documents\NetBeansProjects\JavaApplication1
\dist\JavaApplication1.jar"
C:\Users\sun\.
试试看(2)
ClassLoader.getSystemClassLoader().getResource(".").getPath();
C:\Users\sun>java -jar "C:\Users\sun\Documents\NetBeansProjects\JavaApplication1
\dist\JavaApplication1.jar"
Exception in thread "main" java.lang.NullPointerException
at javaapplication1.JavaApplication1.main(JavaApplication1.java:18)
跟进:
String test = JavaApplication1.class.getProtectionDomain().getCodeSource().getLocation().getPath();
C:\>java -jar "C:\Users\sun\Documents\NetBeansProjects\JavaApplication1\dist\Jav
aApplication1.jar"
/C:/Users/sun/Documents/NetBeansProjects/JavaApplication1/dist/JavaApplication1.
jar
# 1 楼答案
“user.dir”系统属性将返回JAR文件的工作目录。宾雅明的回答也是如此
您正在寻找包含正在执行的JAR文件的目录。在this thread中提出了一个类似的问题,答案可能会对你有所帮助
# 2 楼答案
使用
user.dir
将始终为您提供Windows中的用户目录试试这个:
# 3 楼答案
您可以这样获取当前目录:
使用“user.dir”得到的是用户目录