2012-03-01 35 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聲明的語法。

享受:)