在本地运行应用程序时,它可以工作。但是,当我用maven构建了一个jar并将其推送到cloud foundry后,它找不到krb5。Keytab文件通过本地绝对文件路径krb5。在我的应用程序中设置Keytab的路径。yml文件。如keytab:关键:krb5.keytab文件:C:UsersDocumentsWorkSpaceMyProjectkafkatool krb5.keytab
如何修改krb5的文件路径?Keytab所以当它运行在云铸造厂的应用程序仍然可以找到Keytab ?
当Java应用程序在CloudFoundry上运行时,它是在远程Linux容器中运行的。它不能访问您的本地文件系统,并且您引用的任何文件都需要在Linux容器的文件系统中,因此没有c:
windows风格的路径将工作。
你的应用程序,当在CF上运行时,生活在/home/vcap/app
目录(/app
也有一个符号链接,指向/home/vcap/app
,你可以使用,如果你想)。
此外,您的应用程序将在/home/vcap/app
目录下执行,因此当前工作目录将是/home/vcap/app
。
因此,如果您需要引用文件,您可以相对于/home/vcap/app
目录引用它们,或者您可以将/home/vcap/app
前缀到所有路径并使用文件的完整路径。
如果不喜欢将/home/vcap/app
硬编码到应用程序中,可以通过查看HOME
环境变量动态获取该目录。当应用程序运行时,HOME
env变量指向/home/vcap/app
。