在Cloudhopper庫中發現錯誤後,我們決定將我們的項目遷移到Play Framework 2.2.1
。在Windows上遷移了罰款和項目編譯和運行在Java 6和7sbt可以在Windows 2.2.1上正常運行,但在CentOS上出現編譯錯誤
當我部署的項目,CentOS的機器,與OpenJDK的7.0,我面臨Syntax error, parameterized types are only available if source level is 5.0
:
ERROR in /home/yaron/backup-manager-arseny/app/com/tjat/constants/ErrorConstants.java (at line 6)[0m
[0m[[31merror[0m] [0m UnableToCreateDirectory("Could not create directory on disk"),
[0m[[31merror[0m] [0m FileNotFound("The specific file was not found"), [0m
[0m[[31merror[0m] [0m UnableToReadFile("The file could not be loaded from disk"),
[0m
[0m[[31merror[0m] [0mSyntax error on tokens, delete these tokens[0m
[0m[[31merror[0m] [0m public List<Contact> getContactList(Long page, int contactsPerPage);[0m
[0m[[31merror[0m] [0m ^^^^^^^[0m
[0m[[31merror[0m] [0mSyntax error, parameterized types are only available if source level is 5.0[0m
[0m[[31merror[0m] [0m210 problems (210 errors)[0m
[0m[[31merror[0m] [0m(compile:[31mcompile[0m) javac returned nonzero exit code[0m
爲了解決這個問題,我增加了以下javacOptions
到Build.scala
:
javacOptions ++= Seq("-source", "5.0")
但隨後另一個錯誤出現了:
[error] ERROR in /home/yaron/backup-manager-arseny/app/com/tjat/backupmanager/BackupManagerImpl.java (at line 37)
[error] public String retrieveContacts(String userId, String backupId, String fromId, String toId) throws ApiException {
[error] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error] The method retrieveContacts(String, String, String, String) of type BackupManagerImpl must override a superclass method
在另一臺機器上的Windows上的Eclipse中編譯項目沒有問題。
問題的原因是什麼?請指教。
什麼改變了錯誤是'[0m [[31merror [0m]'然後變成了'[error]'? 'sbt about'的輸出是什麼?你如何開始?什麼是sbt啓動腳本?請參閱[如何在CentOS 4和CentOS 5上安裝Java](http://wiki.centos.org/HowTos/JavaOnCentOS)。 –
[0m [[31merror [0m]可能只是複製粘貼碎片 其餘全部爲默認 – arseny
其他問題呢? 'sbt about'?那麼'java -version'呢?關於sbt的啓動腳本呢?這應該導致一個答案。 –