Java JAR:写入文件

时间:2011-04-03 05:15:20

标签: java eclipse jar

目前,在我的eclipse项目中,我有一个我写的文件。但是,我已将项目导出到JAR文件,并且写入该目录不再有效。我知道我需要将此文件视为类路径资源,但如何使用BufferedWriter执行此操作?

3 个答案:

答案 0 :(得分:5)

您不必将其视为要写入文件的类路径资源。如果文件在JAR文件中,您只需要这样做,但是您不想写入JAR文件中包含的文件吗?

您仍然可以创建和写入文件,但它可能是相对于工作目录 - 您执行JAR文件的目录(除非您使用绝对路径)。在eclipse中,从运行配置对话框中配置工作目录。

答案 1 :(得分:1)

你可能在Linux上工作。因为,在Linux中,当您从JAR启动应用程序时,工作目录将设置为您的主文件夹(/ home / yourname /)。从Eclipse启动时,工作目录设置为项目文件夹。

为了确保您确实知道您正在使用的文件位于项目文件夹或JAR所在的文件夹中,您可以使用这段代码来了解JAR所在的位置,然后使用{{ 1}}构造函数来创建文件:

File(File parent, String name)

而且,从现在开始,您可以像这样创建所有文件:

// Find out where the JAR is:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
path = path.substring(0, path.lastIndexOf('/')+1);
// Create the project-folder-file:
File root = new File(path);

当然,File myFile = new File(root, "config.xml"); 必须在您的范围内。

答案 2 :(得分:0)

此类资源(更改时)最好存储在user.home的子目录中。这是一个可重现的路径,用户应具有写入权限。您可以使用主类的包名作为子目录的基础。 E.G。

our.com.Main -> ${user.home}/our/com/