将带有配置文件的应用程序分发给其他用户

Distributing an application with a configuration file to other users

假设我有一个开源命令行 Java 应用程序,它通过 SSH 连接到服务器。服务器地址、用户名和密码是可配置的,并存储在属性文件中,因此用户可以指定自己的目标服务器。显然这种配置是没有默认值的。

这是我的个人配置:

server=example.com:22
username=exampleUser
password=examplePassword

将我的应用程序分发给其他用户时,处理此类属性文件的最佳方式是什么?

我是否将我的应用程序与空属性文件捆绑在一起并提示用户在 运行 启用该应用程序之前对其进行编辑?

server=
username=
password=

我是否在我的应用程序手册中告诉用户必须存在具有特定名称和特定条目的属性文件?

是否要求用户在第一个应用程序上提供配置运行,然后让应用程序将此配置写入磁盘?

我觉得我的建议有很多缺点,我想知道这个问题的最佳实践。这个问题不是 Java 特定的,我很感兴趣如何用其他语言或框架解决这个问题。

您应该提供命令行开关来输入信息并记录它们,例如:

$ java -jar yourprogram.jar -u <username> -p <passwd> ssh://someserver

应该记录这些选项,并且应该有一个 --help 开关来显示基本文档。该文档还应说明,如果您像您提议的那样将它们存储在 属性 文件中,则可以省略这些参数。关于如何做到这一点的好例子,你可以看看像 git 这样的程序,它可能比你试图完成的要丰富得多,但它是命令行实用程序最佳实践的一个很好的例子。