2014-02-27 16 views
1

我有一個Java程序,需要一堆參數。其中一個參數意味着我希望在沒有插值的情況下給出程序文件(原樣)。Eclipse調試配置,程序參數不幸

例如:s3sync -match '*.xml{,.gz}' ...

這工作完全正常的命令行。 s3sync本身是設置一些環境瓦爾終於做了最小的shell腳本:

$EXEC java $DEBUG $MEMORY -cp "$CLASSPATH" com.my.packages.S3Sync "[email protected]" 

然而,當我嘗試從一個Eclipse調試配置我的代碼,我無法告訴Eclipse不插值是ARG。以下是我試過了,會發生什麼作爲String[] argsmain()

in Program Arguments  what it becomes in main(String[] args) 
-match '*.xml'   String[]{"-match", "'*.xml'"} 
-match *.xml    String[]{"-match", "build.xml", "ivy.xml", ...} 
-match "*.xml"   String[]{"-match", "build.xml", "ivy.xml", ...} 
-match \*.xml   String[]{"-match", "\\*.xml"} 

任何想法?如何在Eclipse Debug Configurations> Program Arguments中編寫參數,以便arg[]"*.xml"

回答

1

由於這個原因和類似的原因,此對話框出現問題。

您可以在該對話框中轉義的唯一字符是雙引號字符。你可以嘗試在

-match \"*.xml\" 

轉義雙引號,看看你是否能得到「的* .xml」在正確傳遞,儘管它的報價。

除此之外,我認爲你必須支持一種替代的語法,你可以在代碼中將它翻譯成正確的語法。

+0

這就是我所害怕的,但很高興知道。單引號版本就是我現在正在使用的版本,如果兩者都是單引號,我會刪除我的參數的第一個和最後一個字符。毫無疑問,當我嘗試通過例如一個腳本作爲一個參數。呃,好吧。 –