随着实验目标考虑制作一个完全便携的玩!应用程序,而不用担心主机是否有Play!甚至Java,我试图找到一种方法来告诉Play!在哪里寻找Java,而不是查看环境变量JAVA_HOME。使用特定的Java路径进行播放!框架
用应用程序绑定框架本身并不是很困难,我甚至找到了一种“嵌入”MySQL的方法,但我还没有找到一种方法来捆绑Java并制作Play!使用我在同一个目录下的JRE。这可能吗?
随着实验目标考虑制作一个完全便携的玩!应用程序,而不用担心主机是否有Play!甚至Java,我试图找到一种方法来告诉Play!在哪里寻找Java,而不是查看环境变量JAVA_HOME。使用特定的Java路径进行播放!框架
用应用程序绑定框架本身并不是很困难,我甚至找到了一种“嵌入”MySQL的方法,但我还没有找到一种方法来捆绑Java并制作Play!使用我在同一个目录下的JRE。这可能吗?
你最开始玩吗?如果你为什么不添加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'])
在补充@ 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
声明的语法。
享受:)
我最终将JDK 1.7粘贴到Play 1.2.4中,并将其粘贴到我的项目中。之前从未做过蝙蝠,所以从.bat文件中找出路径很棘手,但我只是在play.bat中插入这一行: 'set JAVA_HOME =%〜dp0 \ jdk1.7.0' – Indigenuity 2012-03-02 16:29:01
而且非常感谢你很多指出我可以改变python代码的地方。非常有教育意义。我一开始就在使用这个解决方案,但我决定改变play.bat是一个更安全,更便携的方法。 – Indigenuity 2012-03-02 16:30:46