7

Java 1.7 を使用して Play アプリケーションを開発しました。バージョン 1.6 を使用している別のホストで実行されるため、バージョン 1.6 に対してコンパイルする必要があります (変更することはできません)。

そこで、起動スクリプトplayplay-1.6にコピーし、 JDK バージョン 1.6 (コンピューターのディレクトリに保存したもの) を使用するように変更しました。

この変更されたスクリプトを任意のディレクトリで実行すると、目的の情報行が表示されます

play! 2.1.0 (using Java 1.6.0_38 and Scala 2.10.0), http://www.playframework.org

プロジェクトディレクトリで同じスクリプトを実行すると、次の行が表示されます

play! 2.1.0 (using Java 1.7.0_09 and Scala 2.10.0), http://www.playframework.org

プロジェクトがバージョン 1.7 を使用しているというこの情報はどこに保存されていますか? また、1.6 に対して強制的にコンパイルするにはどうすればよいですか?

更新 1

Maxime Calmels さんは、最終的にコンパイル済みの設定ファイルを削除するためにクリーンアップを実行することを提案しました。残念ながら、これは役に立ちませんでした。

更新 2

プレイコンソールでjava-homeと入力すると、メッセージが表示されました

[info] None

そこで、ファイル build.sbt を作成し、コンテンツを追加しました

javaHome := Some(file("/usr/java/jdk1.6.0_38"))

Playコンソールを起動してJava-homeと入力すると、次の行が表示されます

[info] Some(/usr/java/jdk1.6.0_38)

しかし、プレイはまだバージョン 1.7 に対してコンパイルされるので、それもうまくいきません。

アップデート 3

私はそれを機能させました...しかし、Playと私のプロジェクトを、プロジェクトを実行する必要があるホストにコピーして、そこでコンパイルしただけです。あまりエレガントなソリューションではありませんが、自分のマシンでローカルにそれを行うにはどうすればよいか、まだ疑問に思っています。

4

5 に答える 5

0

Java版はコンパイルされたファイルに保存されていると思います。play-1.6スクリプトを開始する前に、プロジェクトをクリーンアップ
しようとしていますか?

于 2013-03-07T07:35:04.547 に答える
0

コメントできないので:

JAVE_HOME1)プレイを開始する前に、シェルで設定を試みましたか? 再生スクリプトを変更しないでください。そこに環境を求めれば、他の場所でもプレイできるかもしれません。bashでは、次のようになります

#> export JAVA_HOME="/your/jdk/path"; play

inspect *:javaHome2)プレイ コンソールで試しましたか? javaHomeプロジェクト内のどこかに明示的に設定されている場合は、その場所が表示されます。私にとっては、次のようになります。

[project] $ inspect javaOptions
[info] Task: scala.collection.Seq[java.lang.String]
[info] Description:
[info]  Options passed to a new JVM when forking.
[info] Provided by:
[info]  */*:javaOptions
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:106
[info] Reverse dependencies:
[info]  *:runner
[info] Delegates:
[info]  *:javaOptions
[info]  {.}/*:javaOptions
[info]  */*:javaOptions
[info] Related:
[info]  */*:javaOptions
于 2014-01-11T22:15:06.673 に答える