从同一文件夹中的JAR访问文件

时间:2011-09-11 17:16:51

标签: java file jar directory executable-jar

我需要从JAR文件(可执行jar)访问(创建和读取)文件, 并且该文件应该在与JAR相同的目录中创建

我试过了     this.getClass().getResource("myFile")  但由于jar中有包,它不起作用..

我也试过写 File f = new File("myFile"); f.createNewFile();

,如果我从终端执行JAR,那就有效,但是如果我通过双击它来执行JAR,那么该文件将在我的主目录中创建-.-''

如何访问文件,确保该文件在SAME目录中作为JAR文件?

(当然也获得jar绝对路径会起作用,因为我可以从中获取父文件夹)

1 个答案:

答案 0 :(得分:7)

这将为您提供Jar的完整路径:

String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
编辑:对不起,当我写那个:)时处于javascript模式。正如礼貌要求的那样,在静态方法中你应该能够做到这一点:

String path = Me.class.getProtectionDomain().getCodeSource().getLocation().getPath();

(班级名称为Me)。