Мой java jar установлен в c:\program files<i do not know>\i do not know\here.jar
. Когда пользователь выполняет мое приложение.
Я всегда получаю c: \ uesrs \\ here.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