2014年9月17日 星期三

eclipse - java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;

前些時候重灌了電腦,當然重灌後某些安裝路徑都會改變,這時候原本使用hsqldb做UnitTest的專案出現了以下錯誤: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties; at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:571 ... 找了很久才發現,原來是我這個Test Proj有reference到主要被測試的Proj, 但是這個主要被測試的Proj某些設定在Eclipse的classpath卻因為電腦重灌的關係而失效了, 所以才會造成這個錯誤。 p.s使用者種與環境相關的設定還是簡單點好,儘量不要用絕對路徑設定的classpath 啊

2014年9月10日 星期三

ANT - build時出現 [javac] Compliance level '1.4' is incompatible with target level '1.8'. A compliance level '1.8' or better is required

參考:
http://stackoverflow.com/questions/1487978/setting-the-target-version-of-java-in-ant-javac

今天使用ant的時候出現了奇怪的錯誤:
  [javac] Compliance level '1.4' is incompatible with target level '1.8'. A compliance level '1.8' or better is required

我明明在javac中標明了target="1.8"如下:



  ...

後來找到上述討論區才知道原來可以加入以下這樣的property來解決這樣的問題: