Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java运行时在文件夹/jar中创建.properties文件?_Java_Netbeans_Jar - Fatal编程技术网

如何在java运行时在文件夹/jar中创建.properties文件?

如何在java运行时在文件夹/jar中创建.properties文件?,java,netbeans,jar,Java,Netbeans,Jar,我正在程序中使用属性文件。我希望在程序运行时能够在外部文件夹或内部jar中创建/编辑.properties文件 例如:如果我想访问一个文件“ex.properties”,但它尚未创建,那么我会在文件夹中创建它,否则就编辑它 当我使用IDE(Netbean)时,我的程序运行良好(创建文件/更改文件),但每当我使用分布式jar时,它就不起作用:“FileNotFoundException(找不到指定的文件路径)”。如果我没有指定文件夹(即“ex.properties”而不是“folder/ex…”“

我正在程序中使用属性文件。我希望在程序运行时能够在外部文件夹或内部jar中创建/编辑
.properties
文件

例如:如果我想访问一个文件“ex.properties”,但它尚未创建,那么我会在文件夹中创建它,否则就编辑它

当我使用IDE(Netbean)时,我的程序运行良好(创建文件/更改文件),但每当我使用分布式jar时,它就不起作用:
“FileNotFoundException(找不到指定的文件路径)”
。如果我没有指定文件夹(即
“ex.properties”
而不是
“folder/ex…”“
),它将工作,但会在主文件夹中创建属性。我很好奇这是否能做到

文件结构:

  • src
  • propFolder(属性应该放在哪里)
我想我可以通过在外部创建属性来解决这个问题,以便在运行时编写它们,但我不知道该怎么做

在构建之后,我尝试将propFolder添加到jar和jar父文件夹(以模拟IDE),但没有解决问题

我相信问题源于无法访问propFolder(或者无法在运行时更改jar),但我想知道原因

在此期间,我只是保持它没有与代码的文件夹,以防篡改

我的(工作)代码的简单示例


您无法在运行时修改资源。您打算在此属性文件中保存什么?它会引发异常,因为propFolder不存在。您必须首先创建文件夹(使用代码)。
private Properties config = new Properties();
//configPath = "propFolder/example.properties" won't work here
String configPath = "example.properties";
String key = "exampleKey";
String val = "exampleVal";
config.setProperty(key, val);

try {
    //Error appears here
    FileOutputStream out = new FileOutputStream(configPath);
    config.store(out, null);
    out.close();
}