''被提取的命令行中的参数通过mvn exec:java发送

时间:2016-07-04 06:51:52

标签: java maven selenium

我有以下命令来调用maven项目。

mvn exec:java -Dexec.mainClass="utility.DriverScript" -Dexec.classpathScope=test -Dexec.args=”’D:\ABC\ExcelDriver.xlsx’”

当我在Main方法中收到args时,我得到的值为

??D:\ABC\ExcelDriver.xlsx??

我在发送args时尝试了以下类型,但没有运气

-Dexec.args=”’D:\\ABC\\ExcelDriver.xlsx’”
-Dexec.args=”’D:/ABC/ExcelDriver.xlsx’”

当我尝试使用-Dexec.args=”D:\ABC\ExcelDriver.xlsx”时,我得到了输出?

D:\ABC\ExcelDriver.xlsx?

我在这里做错了什么。任何指针都会有帮助。 Maven版本3.3.9

我的POM构建看起来像,

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
另外一个奇怪的东西。我决定对它进行修复。但替换功能似乎根本不起作用。

System.out.println(args[0].toString());  //Prints "??args[0]value??" 
String s = args[0].toString();
String firstword = s.replace("?", "");
System.out.println(firstword);  //Prints "??args[0]value??"

1 个答案:

答案 0 :(得分:0)

正如我评论的那样,char arroung -Dexec.args ...不是双引号。所以改为:

mvn exec:java -Dexec.mainClass="utility.DriverScript" -Dexec.classpathScope=test -Dexec.args="D:\ABC\ExcelDriver.xlsx"

您拥有的标志不是可打印的标志,因此会显示为问号