首页 > 解决方案 > 即使在从不同的文件位置导出和运行之后,如何在 java 项目中获取包文件路径

问题描述

在此处输入图像描述

从这张图片中,当我将这个类作为 Java 应用程序运行时,它工作得非常好。

我创建了一个可执行的 jar 文件并保存在 Downloads 文件夹中,当我运行 jar 时,我得到了"java.io.FileNotFoundException: /Users/uanem/Downloads/testng.xml (No such file or directory)"

无论我在哪里运行 jar 文件,如何获取我的项目的文件夹路径并引用这个 testng.xml?

标签: java

解决方案


一个可执行的 jar 没有你从哪里构建它的记忆,所以没有简单的方法可以返回到 testng.xml 文件(为什么你甚至需要它?)

下面我假设 testng 可以在类路径中查找这个文件。(如果您不确定这意味着什么,请考虑学习它——这对于新程序员来说是一个非常常见的问题)。

您可以执行以下一项或多项操作:

  • 在命令行上明确告诉文件的路径。确切的语法取决于 testng 使用的发现机制。您可能必须将其从 args 字符串手动带到调用点。

  • 将下载文件夹添加到在可执行 jar 清单中编码的类路径中。这将不能移植到其他系统,但可能足以供您个人使用。

  • 将文件移动到类路径 (src/java/resources) 中,使其包含在您的可执行 jar 中,并且 testng 可以在那里找到它。

  • 考虑为什么在您的可执行 jar 中需要此功能,如果可能,请删除该功能。然后问题就消失了。

  • 将它放在可执行 jar 旁边并询问 JVM 代码在哪里运行。见https://stackoverflow.com/a/227640/53897


推荐阅读