2012-03-01 37 views
4

随着实验目标考虑制作一个完全便携的玩!应用程序,而不用担心主机是否有Play!甚至Java,我试图找到一种方法来告诉Play!在哪里寻找Java,而不是查看环境变量JAVA_HOME。使用特定的Java路径进行播放!框架

用应用程序绑定框架本身并不是很困难,我甚至找到了一种“嵌入”MySQL的方法,但我还没有找到一种方法来捆绑Java并制作Play!使用我在同一个目录下的JRE。这可能吗?

回答

7

你最开始玩吗?如果你为什么不添加start.sh/start.bat将JAVA_HOME设置为current_folder/jdk?

您还可以将您的Play应用程序打包为WAR文件,并使用可移植的tomcat或其他Web服务器。

每播放命令的说明:

〜脚本首先尝试使用 $ JAVA_HOME环境变量(由$ JAVA_HOME/bin)中找到的java命令。 〜如果未定义 $ JAVA_HOME变量,则使用来自PATH的默认java命令 。

因此,您可以尝试将Java/bin添加到您的路径,或尝试将“java”添加到您开始播放的工作目录中。

作为最后的选择,你可以修改play\framework\pym\play\application.py并直接将其添加您的路径,修改此部分:

def java_path(self): 
     if not os.environ.has_key('JAVA_HOME'): 
      return "java" 
     else: 
      return os.path.normpath("%s/bin/java" % os.environ['JAVA_HOME']) 
+2

我最终将JDK 1.7粘贴到Play 1.2.4中,并将其粘贴到我的项目中。之前从未做过蝙蝠,所以从.bat文件中找出路径很棘手,但我只是在play.bat中插入这一行: 'set JAVA_HOME =%〜dp0 \ jdk1.7.0' – Indigenuity 2012-03-02 16:29:01

+0

而且非常感谢你很多指出我可以改变python代码的地方。非常有教育意义。我一开始就在使用这个解决方案,但我决定改变play.bat是一个更安全,更便携的方法。 – Indigenuity 2012-03-02 16:30:46

0

在补充@ AlexanderPonomarenko答案,并@ Indigenuity的评论(它们都得到了点),这里是我的Win7的X64与播放1.4.2,工程解决方法:

我编辑的play.bat文件位于播放的根,并设置好的内容来:

echo off 
set "JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_112" 
"%~dp0python\python.exe" "%~dp0play" %* 

请注意,这适用于我的Java 8u112 x86用例,您必须将其设置为您所需的。

另请注意,由于空格的原因,将用双引号括起来的JAVA_HOME声明的语法。

享受:)