【问题标题】:Access a file from a JAR in the same folder从同一文件夹中的 JAR 访问文件
【发布时间】:2011-11-14 20:20:15
【问题描述】:

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

我试过了 this.getClass().getResource("myFile") 但由于罐子里有包,它不会工作..

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

如果我从终端执行 JAR,这会起作用,但如果我通过双击它来执行 JAR,文件会在我的主目录中创建 -.-''

如果确定该文件与 JAR 文件位于同一目录中,我如何访问该文件?

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

【问题讨论】:

    标签: java file jar directory executable-jar


    【解决方案1】:

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

    String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
    

    编辑:对不起,我写的时候是在javascript模式下:)。正如如此礼貌地要求的那样,在静态方法中您应该能够做到这一点:

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

    (其中类名是Me)。

    【讨论】:

    • 非常感谢!这样即使我从 jar 中的不同类运行它,该行也会返回相同的值,对吗?
    • 只要它们都在同一个罐子里,是的。
    • var path?混合比喻:) 还要解释如何在静态方法中做到这一点。
    • 是的,我想通了,现在我已经能够测试了,我正在突出显示绿色勾号!
    • 如果我想获取jar文件所在的DIRECTORY路径,而不是确切的.jar路径怎么办。我怎样才能做到这一点 ?实际上我想在 jar 所在目录的同一目录中写入一个新文件。
    猜你喜欢
    • 2015-09-19
    • 2012-06-16
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2011-06-30
    相关资源
    最近更新 更多