如何访问Jar正在执行的绝对文件路径?

时间:2013-03-04 13:26:24

标签: java jar absolute-path

我知道这个问题已被问到很多,但以前的答案似乎都不适合我。

如果我将我的应用程序设置为可执行的Jar,是否有任何方法可以告诉Jar在执行时该文件系统位于何处?我的应用程序需要知道,所以它可以从它的jar中提取一个文件夹(将其视为一个zip文件)到指定的目录。

编辑:感谢所有贡献者,但我认为这是一个死胡同。我将不得不尝试别的东西。很抱歉浪费每个人的时间。我会继续检查这个问题,所以如果有人破解它,请回答:D

对于它的价值,这是我的测试代码:

    package jarProblem;

import java.io.File;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class Main {

    public Main () {

        ClassLoader loader = Main.class.getClassLoader();

        String path = loader.getResource("jarProblem/Main.class").getPath();

        File file = new File(path);

        String pathToJar = file.getParentFile().getAbsolutePath();

        JOptionPane.showMessageDialog(new JFrame(), new JLabel(pathToJar),"CurrentFolder", JOptionPane.PLAIN_MESSAGE);

        System.exit(0);
    }

    public static void main (String[] args) {

        new Main();
    }

}

2 个答案:

答案 0 :(得分:0)

System.getProperty("user.dir");

答案 1 :(得分:0)

您是否尝试过Path类?它拥有您所寻找的一切。