【发布时间】:2017-05-16 07:10:21
【问题描述】:
我有以下问题。 我的项目结构是一个典型的 maven Java 项目:
src/main/java - project .java files
src/main/resources - project resources (log4j2.xml)
src/test/java - .java files for tests
src/test/resources - testng.xml file
在 src/main/java 中,我还有一个包含 JavaScript 文件(我在 Java 代码中以编程方式执行的一些脚本)的包,位于以下位置:src/main/java/js/scripts/
当我运行测试时,我当然可以访问“脚本”文件夹中的 *.js 文件 - 我只是使用 FileUtils.readFileToString(new File(pathTo_jsFile))
但是在使用 maven 编译项目后,这不再起作用。
我无法使用要放置在现有包 (/js/scripts/) 中的文件进行编译 - 我能够将非 java 文件添加到 .jar 的唯一方法是添加它们作为 pom.xml 中的资源,但随后它们被添加到 .jar 文件的根目录中。
我无法从 .jar 文件中读取任何内容。
【问题讨论】:
-
要读取 .jar,请参阅 How to add and read resource file from jar。
-
对不起,我应该提到我已经尝试过的事情。我已经测试了 getResourceAsStream() 并且它给出了一个空值。我读过这个方法只能从项目类文件中读取,不能从编译的.jar中读取
-
你看错了...
-
是的,如果找不到资源,它可以返回 null,但它肯定会从 .jar 中读取。最有可能的是,资源的路径指定不正确。资源也可能不在 .jar 中。
-
@Sergio:你试过
Class.getResourceAsStream()还是ClassLoader.getResourceAsStream()?如果您需要前导 / (Class) 或不需要 (ClassLoader) 来指定 JAR 中的绝对路径,则行为会有所不同。
标签: javascript java maven selenium jar