2016-07-04 4 views
0

以下のコマンドを使用して、mavenプロジェクトを呼び出します。'?'取得されたコマンドライン引数に追加されます。mvn経由で送信exec:java

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

引数を送信している間、私が主な方法で引数を受け取るとき、私は

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

として値を取得し、私も以下のタイプを試してみましたが、私が試した運

-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> 

1より奇妙なもの、のように見えます。私は同じもののハックフィックスをすることにしました。しかし、機能を置き換えることはまったく機能していないようです。

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

はパラメータarroundの文字のように見えます疑問符として示したことになるので、

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

あなたは、印刷可能な兆候ではない持っている兆候はのようなあなたのポンポンを見て何をするか、二重引用符 – Jens

+0

ではありません?あなたは少なくともそれのビルド部分を共有することができますか? – nullpointer

+0

もう1つ奇妙なもの。私は同じもののハックフィックスをすることにしました。しかし、機能を置き換えることはまったく機能していないようです。 System.out.println(args [0] .toString()); // "args [0] value ??"を出力します。 \t \t文字列s = args [0] .toString(); \t \t文字列firstword = s.replace( "?"、 ""); \t \t System.out.println(firstword); // "args [0] value ??"を出力します。 – ABS

答えて

0

私がコメントしたように、char arroung -Dexec.args ...は二重引用符ではありません。だから、に変更します。それは

+0

上記を試したところ、出力は?D:\ ABC \ ExcelDriver.xlsx?となりました。質問では、私は意図的に二重引用符の中に一重引用符を入れて、その中にスペースがあってもそれが単一の引数として取られるようにしています。私は問題がMavenにあるのかどうかわからないのですか?私も-Dexec.args = "Name"のような簡単な入力を試みました。 – ABS

関連する問題