gpt4 book ai didi

java - 程序在编译器中运行良好,但在 jar 中运行不佳(Java)

转载 作者:行者123 更新时间:2023-12-01 22:42:47 25 4
gpt4 key购买 nike

我将程序导出到 jar 文件中,但是当我运行它时,程序似乎找不到 .properties 文件。我确保它在 jar 文件中并且在导出之前运行良好。我读到了一些关于使用 getClass().getResourceAsStream() 而不是 FileInputStreamFileOutputStream 的内容,但似乎不明白这有什么帮助。有任何想法吗?这是使用该文件的两种方法。

private void UpdateData() throws IOException{
FileInputStream in = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(in);
in.close();

FileOutputStream out = new FileOutputStream("config.properties");
props.setProperty("prop1", prop1TextArea.getText().toString());
props.setProperty("prop2", prop2TextArea.getText().toString());
props.setProperty("prop3", prop3TextArea.getText().toString());
props.store(out, null);
out.close();

}

private void setText() throws IOException {

FileInputStream in = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(in);
in.close();

FileOutputStream out = new FileOutputStream("config.properties");
prop1TextArea.setText(props.getProperty("prop1"));
prop2TextArea.setText(props.getProperty("prop2"));
prop3TextArea.setText(props.getProperty("prop3"));
out.close();
}

最佳答案

要访问 .jar 文件中的资源,您必须将它们作为资源而不是文件来访问。

.properties 不再位于文件系统中,因此您无法通过 FileInputStream 访问它们。

如果您想稍后保存它们,则必须在程序第一次启动时创建新的.properties。因此,您必须首先检查文件是否存在(例如通过 File.exists()),然后要么在没有文件属性的情况下工作,要么创建一个新文件并使用它。

关于java - 程序在编译器中运行良好,但在 jar 中运行不佳(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com