私のjava jarはc:\program files<i do not know>\i do not know\here.jar
にインストールされています。ユーザーが自分のアプリケーションを実行するとき。Javaでダブルクリックまたは実行された正しいパスを取得するにはどうすればよいですか?
私はいつもc:\ uesrs \\ here.jarとその失敗を受け取ります。
String Windows7HomeEditionProgramFileDirectroyStruct = System.getProperty("user.dir");
は、どのように私はそれをダブルクリックしたからか、実行された正しいパスを得ることができますか?
詳細(jarファイルが置かれている場所の答えが、どれも両方が言っているテスト):
は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
「C:¥Users¥sun¥Documents¥NetBeansProjects¥JavaApplication1 ¥dist¥」の出力結果はどのように取得できますか?その場所であるが、ユーザーの場所ではない、またはコマンドの場所からではありません。 – YumYumYum
ユーザーはjarファイルを取り出し、C:\ here.jarに配置しました。明日、彼はファイルを取り出してD:\ here.jarに配置しました。今すぐC:\ java -jar d: '\ here.jarというコマンドプロンプトから起動すると、出力結果をc:\ではなくd:\として取得したいと考えています。どのようなアイデア? – YumYumYum