今天練習使用Ant 做Build,在compile的時候有錯誤:error: constant string too long
發生問題的訊息如下:
ReadInputDataTest.java:75: error: constant string too long
[javac] _data = "8220100300012013081400 154527 0 2797 0 0 2797 151730 08220100300012013081500 154527 0
....
原來是_data這個數字assign的數值太長,無法compile,但是在eclipse上compile卻沒有任何問題,後來查詢原來是eclipse所使用的Compile並不是標準的jdk compile,因此會變成eclipse可以過Ant可以過,解決方式就是經查詢有兩種:
1.將原本assign constant的部分改為使用readFile
2.將eclipse所使用的compile
我選了第2個方式,解決方式如下:
1.不要使用eclipse的Ant Build
2.找出ANT_HOME的位置
3.下載ecj-4.2.1.jar 這個檔案(在spring與apache專案中都有<是不是4.2.1每個版本不同,端看使用版本而定>)
4.將ecj-4.2.1.jar此檔案置放於%ANT_HOME%\lib下
5.變更ant build.xml內容加上如下:
再來直接執行ant -file build.xml
但此時卻又出現另一個問題:Syntax error, parameterized types are only available if source level is 1.5 or greater
101. ERROR in /Users/wuanne/workspace/eclipse/CTCB_MI/New/CTBC_MI_Util/src/com/ctbc/util/xml/XmlProcess.java (at line 116)
[javac] public static List<Node> selectNodesWithNameSpaceXML(Element ele,String szXpath,Map<String,String> uris){
[javac] ^^^^
[javac] Syntax error, parameterized types are only available if source level is 1.5 or greater
我實際上的確是使用jdk 1.7的版本卻報錯誤要我使用1.5以上?
解決方式就是在ant build.xml上加上使用版本的attr如下:
在上面直接加上target="1.7" 與source="1.7"的attr,
重新執行就解決囉~
我實際上的確是使用jdk 1.7的版本卻報錯誤要我使用1.5以上?
解決方式就是在ant build.xml上加上使用版本的attr如下:
....
在上面直接加上target="1.7" 與source="1.7"的attr,
重新執行就解決囉~