我有以下命令来调用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??"
答案 0 :(得分:0)
正如我评论的那样,char arroung -Dexec.args ...不是双引号。所以改为:
mvn exec:java -Dexec.mainClass="utility.DriverScript" -Dexec.classpathScope=test -Dexec.args="D:\ABC\ExcelDriver.xlsx"
您拥有的标志不是可打印的标志,因此会显示为问号