繁体   English   中英

如何在Java命令行选项中将资源文件夹添加到类路径

[英]How to add resource folder to classpath in Java command line options

我正在尝试从命令行运行Junit测试用例。

我在Windows系统中从文件夹D:\\WorkSpace\\Testspace\\MyProject\\target触发测试,如下所示:

java -cp "classes;junit;dependency\*"  org.junit.runner.JUnitCore com.abc.TestA

这是一个行家项目。 它引发以下错误:

2019-07-09T17:59:41.330 ERROR [com.abc.IOUtil] - FileNotFoundException Occurredjava.io.FileNotFoundException: D:\WorkSpace\Testspace\MyProject\target\cde\FGH\SomeRandomFile.xml (The system cannot find the path specified)IOUtil

这个包含xmls的cde文件夹也位于target文件夹中,从该target文件夹中触发测试命令。

有什么办法可以在Java命令行中包含资源文件?

在您的源代码中,使用以下构造:

package com.foo.package;

public class Example {
    public void loadResourceExample) {
         Example.class.getResource("/cde/FGH/SomeRandomFile.xml");
         Example.class.getResource("relative/example.xml");
    }
}

第一行将从类路径中提到的任何文件夹或jar中加载资源“ /cde/FGH/SomeRandomFile.xml”,因此在示例命令行中, D:\\WorkSpace\\Testspace\\MyProject\\target\\classes\\cde\\FGH\\SomeRandomFile.xml例如,将扫描D:\\WorkSpace\\Testspace\\MyProject\\target\\classes\\cde\\FGH\\SomeRandomFile.xml

第二行考虑了您的类的包名称,因此,它将在D:\\WorkSpace\\Testspace\\myProject\\dependency\\somedep.jar中检查条目/com/foo/package/relative/example.xml

请注意,-cp参数中的*语法将把指定文件夹中的每个JAR都包含在类路径中。 这就是全部。

如果您没有使用getResource ,那么您实际上将依赖于“当前工作目录”,并且-cp参数不会产生任何影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM