2013-02-11 10 views
15

Moduł, którego używam, musi zostać skompilowany z Javą 1.7, a mam tylko 1.6.Jak mogę ustawić wersję kompilatora javac dla Play Framework 2.0, aby zapobiec "Unsupported major.minor version"?

Jeśli chcę, aby moduł został skompilowany dla konkretnej wersji, takiej jak 1.6, jak mogę to ustawić w Play! Framework 2.0, dzięki czemu mogę zapobiec błędom "Unsupported major.minor version".

W grze! 1.x możesz ustawić "java.version = 1.6" w pliku application.conf.

Zakładam, że w Play! 2.x to prawdopodobnie musi być gdzieś ustawione dla sbt - ale gdzie/jak?

Odpowiedz

0

Myślę, że jedynym rozwiązaniem jest utworzenie pliku build.sbt w katalogu głównym projektu i dodać

JAVAHOME: = niektórych (plik ("path_to_your_jdk"))

+0

Po prostu chcę ustawić wersję jak w ant java target = "1.5" – poornerd

+0

Myślę, że nie jest to możliwe – MaFo

8

W projekcie plik /Build.scala, dodaj ustawienie poniżej jeśli chcesz skompilować z Java 1.6:

val main = play.Project(appName, appVersion, appDependencies).settings(
    // Force compilation in java 1.6 
    javacOptions in Compile ++= Seq("-source", "1.6", "-target", "1.6") 
) 
+0

to wygląda obiecująco, dzięki! – poornerd

+0

i tutaj można go znaleźć na moim [blogu] (http://www.poornerd.com/2013/07/25/how-to-set-the-java-version-for-compiling-a-play- framework-module /) – poornerd

1

wyobraziłem to, umieścić

javaHome := Some(file("path_to_your_jdk")) 

na samym końcu pliku build.sbt. Upewnij się, że umieściłeś go po "playJavaSettings" (jeśli posiadasz tę linię w swoim pliku built.sbt).

Sprawdź, czy masz właściwą drogę przypisany do SDK, można to sprawdzić wpisując:

java-home 

w Play lub konsoli aktywatora.

Również upewnić uruchomieniu

clean 

w konsoli, aby pozbyć się wszystkich poprzednio zebranych środków.

teraz skompilować kod za pomocą

compile 

powinno być dobrze iść. Mam nadzieję, że to pomoże!

17

Dodawanie

javacOptions ++= Seq("-source", "1.6", "-target", "1.6") 

do build.sbt pliku pracował dla mnie (w sposób przejrzysty, w moim przypadku było to 1,7 budować z JDK 8).

+0

Myślę, że 1.7 oznacza budowanie z JDK 7 i 1.8 z JDK 8. Czy jestem zły? – behzad

Powiązane problemy