【问题标题】:Java creating a test file from a jarJava 从 jar 中创建测试文件
【发布时间】:2019-01-22 01:46:33
【问题描述】:

我想要一个 java 应用程序,在启动 jar 后,我会在与 jar 相同的文件夹中获得一个文件,例如 test.txt。

例如,我点击 jar 并在同一个文件夹中得到一个 test.txt 文件。

以下代码在eclipse中工作并创建文件,但导出到jar后,没有文件生成。

如果您能提供帮助将非常高兴。

public class FileWriterTest {
    public static void main(String[] args) {
        String fileName = "test.txt";
        try(
            FileWriter fileWriter = new FileWriter(fileName);
            BufferedWriter writer = new BufferedWriter(fileWriter);
        ) {
            writer.write("Hello");
                   } catch(IOException e) {
            e.printStackTrace();
        }
    }
}

【问题讨论】:

  • 导出后你的 jar 是如何运行的?
  • 使用System.getProperty("user.dir") 获取“工作”目录引用并确保它在您认为的位置

标签: java file jar export


【解决方案1】:

使用System.getProperty("user.dir"),您可以获得当前的“工作目录”。 如果要在该特定目录中创建文件,可以使用以下代码:

String workingDirectory = System.getProperty("user.dir");
File file = new File(working directory + File.separator + "filename.txt");
file.createNewFile();

【讨论】:

    【解决方案2】:

    如果你以java -jar yourjar.jar 运行,它不会占用额外的类路径。

    您需要在类路径中添加您的 jar 和文件所在的位置,并为 Main 类调用 java 命令

    例子

    Linux

    java  -classpath .:path_dir_with_jar/*:path_to_file MainClass
    

    窗户

    java  -classpath .;path_dir_with_jar/*;path_to_file MainClas
    

    终于可以读成

    InputStream in = this.getClass().getClassLoader()
                                    .getResourceAsStream("SomeTextFile.txt")
    

    ;

    【讨论】:

      猜你喜欢
      • 2015-04-24
      • 2012-07-14
      • 2015-09-09
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多