如何将外部文件复制到当前运行的jar中?

时间:2016-08-25 20:40:11

标签: java javafx jar

我想编辑位于当前正在运行的jar中的配置文件。 有没有办法允许直接修改此文件或从外部复制它?

1 个答案:

答案 0 :(得分:1)

您无法修改评论中建议的jar runtime jar。我会在这里为您提供可能需要的替代方案,因此这个问题不会显示在未答复的页面中。

<强>为什么吗

  
    

jar正在运行(即JVM正在使用它)时,操作系统会将文件(存档&gt;&gt;文件)锁定。当任何文件被锁定(或标记为已锁定)时,它无法更改,换句话说,它与只读文件一样好。

  

为什么您可能需要这样做。

  
    

人们试图写入jar的原因是,他们想要一个他们想要使用绝对/相对路径的文件(参考jar文件)。

  

在这种情况下我们有什么选择?

  
    

因此,如果这是您的问题,您可以在jar的位置创建一个目录并使用它。

         

如果您的C:\Users\<Something>\Desktop\testDir\位于C:\Users\<Something>\Desktop\testDir\conf\,那么您可以创建一个目录&#39; conf&#39; ( Bitmap bitmap; String directory = new_path; // I am getting path here of image like sdcard/0/emulated/image.jpg String folder_name = "abc" bitmap = BitmapFactory.decodeFile(directory); iv_6.setImageBitmap(bitmap); // image displayed here but not saving in directory. try { File f = new File(Environment.getExternalStorageDirectory() + File.separator +folder_name); f.mkdirs(); FileOutputStream fo = new FileOutputStream(f); bitmap.compress(Bitmap.CompressFormat.JPEG, 40, fo); fo.close(); }catch (Exception e) { e.printStackTrace(); } )在这个地方。您可以在此目录中编写/创建文件,并轻松地从代码中引用它们(参考当前工作目录的路径)。