我需要从JAR文件(可执行jar)访问(创建和读取)文件, 并且该文件应该在与JAR相同的目录中创建
我试过了
this.getClass().getResource("myFile")
但由于jar中有包,它不起作用..
我也试过写
File f = new File("myFile");
f.createNewFile();
,如果我从终端执行JAR,那就有效,但是如果我通过双击它来执行JAR,那么该文件将在我的主目录中创建-.-''
如何访问文件,确保该文件在SAME目录中作为JAR文件?
(当然也获得jar绝对路径会起作用,因为我可以从中获取父文件夹)
答案 0 :(得分:7)
这将为您提供Jar的完整路径:
String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
编辑:对不起,当我写那个:)时处于javascript模式。正如礼貌要求的那样,在静态方法中你应该能够做到这一点:
String path = Me.class.getProtectionDomain().getCodeSource().getLocation().getPath();
(班级名称为Me
)。