我检查了很多类似的问题,但到目前为止我对解决方案不满意。
曾经使用过Minecraft服务器吗?在初始启动时,它会创建所需的所有文件和文件夹,并允许您通过将文件放在可执行jar文件的外部来更改Server.properties和ops.txt等文件。
我正在开展一个类似的项目,我想复制这种行为。当我在日食中运行它时,一切都很好。当我导出到jar文件时,事情变得很时髦。创建外部文件和文件夹时没有任何障碍,但后面的内容似乎无法读取或写入。 Notch是如何制作他的服务器的?
- edit-- 从头开始,它甚至不能可靠地创建文件和文件夹。也许它只会在创建后的第一次创建时创建它们?
- 再次编辑 - 它在根目录中创建它们。当我在eclipse中测试它时,根目录仅限于包含项目的文件夹,因此看起来很好。解决方案是让类知道它的位置,并将其包含在所有文件操作中。
答案 0 :(得分:1)
让可执行jar文件中的主类查找它的位置,然后让它将该信息存储在全局String或其他内容中。在文件操作中使用该字符串作为文件名的前缀,瞧!它正在写入正确的目录。