2012-03-01 10 views
4

完全に移植可能なPlayを作るという実験的な目標を念頭に置いて!ホストマシンにPlayがあるかどうか心配することなく、またはJavaでも、私はPlayに指示する方法を見つけようとしています!環境変数JAVA_HOMEを調べるのではなく、Javaを探す場所。Playに特定のJavaパスを使用してください!フレームワーク

アプリケーションでフレームワーク自体をバンドルすることはそれほど難しくありませんし、MySQLを組み込む方法も見つけましたが、JavaをバンドルしてPlayを行う方法は見つかりませんでした。同じディレクトリにあるJREを使用してください。これは可能ですか?

答えて

7

どのようにPlayを開始しますか? JAVA_HOMEをcurrent_folder/jdkに設定するstart.sh/start.batを追加しないのはなぜですか?

また、WARファイルとしてPlayアプリケーションをパッケージ化し、携帯用のtomcatや他のWebサーバーで使用することもできます。 Playコマンドの説明パー

〜スクリプトは最初($ JAVA_HOME/binにから) $ JAVA_HOME環境変数を使用して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

+0

ありがとう私がどこでPythonコードを変更できるかを指摘してくれました。非常に有益。最初はそのソリューションを使用していましたが、play.batの変更はより安全で移植性の高い方法であると判断しました。 – Indigenuity

0

AlexanderPonomarenkoの答え@とIndigenuityさんのコメントを@に(彼らは両方のポイントを得ました)、ここでプレイ1.4.2とWin7のx64の上で私の作品回避策は次のとおりです。

私がプレイのルートにあるplay.batファイルを編集して、にその内容をsetted:

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

これはJava 8u112 x86での私の使用例では機能しますが、必要なものに設定する必要があります。

また、空白のためにJAVA_HOMEを二重引用符で囲んで宣言する構文にも注意してください。

お楽しみください:)

関連する問題