【发布时间】:2013-03-06 17:15:03
【问题描述】:
我使用 Java 1.7 开发了一个 Play 应用程序。现在我需要针对 1.6 版本对其进行编译,因为它将在仍然使用 1.6 的另一台主机上执行(我无法更改)
所以我将启动脚本 play 复制到 play-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 建议执行 clean 以最终删除已编译的配置文件。不幸的是,这没有帮助。
更新 2
当我在播放控制台中输入 java-home 时,我收到了消息
[info] None
所以我创建了一个文件 build.sbt 并添加了内容
javaHome := Some(file("/usr/java/jdk1.6.0_38"))
当启动播放控制台并输入 java-home 现在我得到了这条线
[info] Some(/usr/java/jdk1.6.0_38)
但是玩仍然会针对 1.7 版进行编译,所以也没有运气。
更新 3
我让它工作了...... 但是只需将 Play 和我的项目复制到应该运行项目的主机并在那里编译它。这不是一个非常优雅的解决方案,我仍然想知道如何在我的机器上进行本地处理。
【问题讨论】:
-
您是从命令行编译还是从 IDE 编译?如果是后者,请确保您的 IDE 配置为使用 1.6
-
我正在从命令行编译。
-
我想看看您是如何更改播放文件的,也许您可以在 github 或其他地方分享这些文件,以便我们了解您如何将其更改为使用 jdk 1.7。您确定不同的版本是当您在不同的目录或不同的 shell 终端中时它们可能具有不同的 JAVA_HOME 值吗?
-
我更改脚本文件的方式正是您在回答中提到的方式。没有其他任何改变。
标签: java scala compilation playframework playframework-2.1